---
layout: docs
page_title: Upgrade Vault plugins
description: >-
    Upgrade plugins running in Vault.
---

> [!IMPORTANT]  
> **Documentation Update:** Product documentation, which were located in this repository under `/website`, are now located in [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs), colocated with all other product documentation. Contributions to this content should be done in the `web-unified-docs` repo, and not this one. Changes made to `/website` content in this repo will not be reflected on the developer.hashicorp.com website.

# Upgrade plugins

Upgrading a plugin in the catalog affects all uses of that plugin version. For
example, if you have 5 different `customkv` mounts using v1.0.0 and you upgrade
to v1.1.0, all the existing mounts will use the new binary if you overwrite it.
We recommend treating plugin versions in the catalog as immutable, like version
control tags, rather than overwriting them explicitly.

Always check the plugin release notes for unsupported transitions before
upgrading your plugins. Core systems within Vault manage the token and lease
lifecycle so plugins only renew or revoke tokens and leases when the core
systems requests it. As a result, existing tokens and leases are generally
unaffected by plugin upgrades.


## Before you start

- **To register and upgrade official enterprise plugins, you must have Vault v1.16.21+,
  1.17.17+, 1.18.10+, 1.19.4+, or 1.20.x+**.
- **To register and upgrade official community plugins with an extracted `.zip` file, you must have
  Vault v1.16.21+, 1.17.17+, 1.18.10+, 1.19.5+, or 1.20.x+**.

@include 'plugins/common-requirements.mdx'

## Step 1: Prepare the plugin

@include 'plugins/prepare-plugin.mdx'


## Step 2: Update the plugin catalog

Register the new plugin binary or zip file with an updated version number under
the same plugin type and name as the existing plugin version.

@include 'plugins/register.mdx'


## Step 3: Reload the plugin

Until you reload the plugin, Vault continues running the old plugin version on
the mount path. When you trigger a reload, Vault kills the active plugin process
and start a new plugin process with the pinned version of that plugin.

@include 'plugins/pin-and-reload.mdx'


## Step 4: Verify the plugin status

@include 'plugins/verify-status.mdx'
