Skip to content
qibdo qibdo
Theme
Book a demo

Errors

Every Vault error carries a stable numeric error_code and a machine-readable reason. This page lists the logical error codes Vault can return, across its domain groups (2_3xx) and infrastructure groups (2_6xx). For the full error envelope (the google.rpc.Status shape, the reason and metadata fields, and how codes are structured) see Errors.

Vault codes begin with 2 (for example 2301003, read as 2_301_003: service, group, specific error). The wire value is always the flat integer; you can match on either error_code or reason, both are stable.

The Status column is the canonical gRPC status the error maps to, which the gateway renders as the matching HTTP status (see the status codes table).

CodeReasonStatusDescription
2300001VAULT_OPERATION_PROGRESS_OUT_OF_RANGEINVALID_ARGUMENTVault operation progress must be between 0 and 100.
2300002VAULT_OPERATION_END_TIME_BEFORE_START_TIMEINVALID_ARGUMENTVault operation end time must not be before start time.
2300003VAULT_OPERATION_NOT_FOUNDNOT_FOUNDVault operation not found.
2300004VAULT_OPERATION_ERRORS_REQUIRE_ERROR_STATUSINVALID_ARGUMENTA vault operation carrying errors must have status ERROR.
2300005OPERATION_SCOPE_TYPE_NOT_VALIDINVALID_ARGUMENTOperation scope type is not valid.
2301001SECRET_NAME_NOT_VALIDINVALID_ARGUMENTSecret name must match ^[a-z0-9][a-z0-9/\-_]{1,254}[a-z0-9]$ (3 to 256 characters).
2301002SECRET_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTSecret workspace ID is required.
2301003SECRET_NOT_FOUNDNOT_FOUNDSecret not found.
2301004SECRET_ALREADY_EXISTSALREADY_EXISTSA secret with this name already exists in the workspace.
2301005SECRET_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONSecret is not marked for deletion.
2301006SECRET_VERSION_NOT_FOUNDNOT_FOUNDSecret version not found.
2301007SECRET_VERSION_ALREADY_DESTROYEDFAILED_PRECONDITIONSecret version is already destroyed.
2301008SECRET_DELETION_FAILEDUNAVAILABLEFailed to delete secret in the vault backend.
2301009SECRET_WORKSPACE_NOT_FOUNDNOT_FOUNDThe workspace this secret belongs to does not exist.
2302001SECRET_VERSION_SECRET_ID_NOT_VALIDINVALID_ARGUMENTSecret version’s parent secret ID is required.
2302002SECRET_VERSION_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTSecret version’s workspace ID is required.
2302003SECRET_VERSION_NUMBER_NOT_VALIDINVALID_ARGUMENTSecret version number must be a positive, monotonically increasing integer.
2302004SECRET_VERSION_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONSecret version is not marked for deletion.
2304001CRYPTO_KEY_NAME_NOT_VALIDINVALID_ARGUMENTCrypto key name must match ^[a-z0-9][a-z0-9/\-_]{1,254}[a-z0-9]$ (3 to 256 characters).
2304002CRYPTO_KEY_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTCrypto key workspace ID is required.
2304003CRYPTO_KEY_ALGORITHM_DOES_NOT_MATCH_PURPOSEINVALID_ARGUMENTCrypto key algorithm is not compatible with its purpose.
2304004CRYPTO_KEY_MIN_DECRYPTABLE_VERSION_NOT_VALIDINVALID_ARGUMENTCrypto key minimum decryptable version must be >= 1.
2304005CRYPTO_KEY_NOT_FOUNDNOT_FOUNDCrypto key not found.
2304006CRYPTO_KEY_ALREADY_EXISTSALREADY_EXISTSA crypto key with this name already exists in the workspace.
2304007CRYPTO_KEY_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONCrypto key is not marked for deletion.
2304008CRYPTO_KEY_ALGORITHM_NOT_VALIDINVALID_ARGUMENTCrypto key algorithm is required and must be a recognised value.
2304009CRYPTO_KEY_WORKSPACE_NOT_FOUNDNOT_FOUNDThe workspace this crypto key belongs to does not exist.
2304010CRYPTO_KEY_PURPOSE_NOT_VALIDINVALID_ARGUMENTCrypto key purpose is required and must be a recognised value.
2304011CRYPTO_KEY_PROTECTION_LEVEL_NOT_VALIDINVALID_ARGUMENTCrypto key protection level is required and must be a recognised value.
2305001CRYPTO_KEY_VERSION_CRYPTO_KEY_ID_NOT_VALIDINVALID_ARGUMENTCrypto key version’s parent crypto key ID is required.
2305002CRYPTO_KEY_VERSION_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTCrypto key version’s workspace ID is required.
2305003CRYPTO_KEY_VERSION_NUMBER_NOT_VALIDINVALID_ARGUMENTCrypto key version number must be a positive, monotonically increasing integer.
2305004CRYPTO_KEY_VERSION_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONCrypto key version is not marked for deletion.
2305006CRYPTO_KEY_VERSION_NOT_FOUNDNOT_FOUNDCrypto key version not found.
2305007CRYPTO_KEY_VERSION_ALREADY_DESTROYEDFAILED_PRECONDITIONCrypto key version is already destroyed.
2305008CRYPTO_KEY_VERSION_NOT_SCHEDULED_FOR_DESTRUCTIONFAILED_PRECONDITIONCrypto key version has no pending destruction to cancel.
2307001CERTIFICATE_AUTHORITY_NAME_NOT_VALIDINVALID_ARGUMENTCertificate authority name must match ^[a-z0-9][a-z0-9\-_]{1,254}[a-z0-9]$ (3 to 256 characters).
2307002CERTIFICATE_AUTHORITY_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTCertificate authority workspace ID is required.
2307003CERTIFICATE_AUTHORITY_INTERMEDIATE_MISSING_PARENTINVALID_ARGUMENTIntermediate certificate authority requires a parent CA reference.
2307004CERTIFICATE_AUTHORITY_VALIDITY_WINDOW_NOT_VALIDINVALID_ARGUMENTCertificate authority not_after must be strictly after not_before.
2307005CERTIFICATE_AUTHORITY_NOT_FOUNDNOT_FOUNDCertificate authority not found.
2307006CERTIFICATE_AUTHORITY_ALREADY_EXISTSALREADY_EXISTSA certificate authority with this name already exists in the workspace.
2307008CERTIFICATE_AUTHORITY_PARENT_NOT_FOUNDNOT_FOUNDParent certificate authority referenced by this intermediate does not exist.
2307010CERTIFICATE_AUTHORITY_WORKSPACE_NOT_FOUNDNOT_FOUNDThe workspace this certificate authority belongs to does not exist.
2307011CERTIFICATE_AUTHORITY_TYPE_NOT_VALIDINVALID_ARGUMENTCertificate authority type must be ROOT or INTERMEDIATE.
2307012CERTIFICATE_AUTHORITY_IS_REVOKEDFAILED_PRECONDITIONCertificate authority is revoked and cannot issue new certificates.
2307013CERTIFICATE_AUTHORITY_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONCertificate authority must be marked for deletion before removal.
2307014CERTIFICATE_AUTHORITY_IS_EXPIREDFAILED_PRECONDITIONCertificate authority is expired and cannot issue new certificates.
2307015CERTIFICATE_AUTHORITY_NOT_YET_VALIDFAILED_PRECONDITIONCertificate authority is not yet valid and cannot issue new certificates.
2307016CERTIFICATE_AUTHORITY_STATE_NOT_VALIDINVALID_ARGUMENTCertificate authority state must be ACTIVE, REVOKED, or EXPIRED.
2308001CERTIFICATE_SERIAL_NOT_VALIDINVALID_ARGUMENTCertificate serial is required and must be at most 128 characters.
2308002CERTIFICATE_SUBJECT_NOT_VALIDINVALID_ARGUMENTCertificate subject is required.
2308003CERTIFICATE_VALIDITY_WINDOW_NOT_VALIDINVALID_ARGUMENTCertificate not_after must be strictly after not_before.
2308004CERTIFICATE_NOT_FOUNDNOT_FOUNDCertificate not found.
2308006CERTIFICATE_ALREADY_REVOKEDFAILED_PRECONDITIONCertificate has already been revoked.
2308007CERTIFICATE_ALREADY_TERMINALFAILED_PRECONDITIONCertificate is already in a terminal state and cannot be revoked.
2308008CERTIFICATE_REVOCATION_REASON_NOT_VALIDINVALID_ARGUMENTCertificate revocation reason must be a valid RFC 5280 reason.
2313001CERTIFICATE_TEMPLATE_NAME_NOT_VALIDINVALID_ARGUMENTCertificate template name is not valid.
2313002CERTIFICATE_TEMPLATE_ALLOWED_DOMAINS_NOT_VALIDINVALID_ARGUMENTCertificate template allowed_domains must contain at least one valid domain pattern.
2313003CERTIFICATE_TEMPLATE_MAX_TTL_NOT_VALIDINVALID_ARGUMENTCertificate template max_ttl must be positive and not exceed the parent CA validity remaining.
2313004CERTIFICATE_TEMPLATE_ALLOWED_KEY_TYPES_NOT_VALIDINVALID_ARGUMENTCertificate template allowed_key_types must contain at least one entry.
2313005CERTIFICATE_TEMPLATE_ALLOWED_EXTENDED_KEY_USAGES_NOT_VALIDINVALID_ARGUMENTCertificate template allowed_extended_key_usages must contain at least one entry.
2313006CERTIFICATE_TEMPLATE_NOT_FOUNDNOT_FOUNDCertificate template not found.
2313007CERTIFICATE_TEMPLATE_ALREADY_EXISTSALREADY_EXISTSA certificate template with this name already exists for the certificate authority.
2313008CERTIFICATE_TEMPLATE_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONCertificate template is not marked for deletion.
2313009CERTIFICATE_TEMPLATE_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTCertificate template workspace ID is required.
2313010CERTIFICATE_TEMPLATE_CERTIFICATE_AUTHORITY_NOT_FOUNDNOT_FOUNDThe certificate authority this certificate template belongs to does not exist.
2313011CERTIFICATE_TEMPLATE_DOMAIN_NOT_ALLOWEDINVALID_ARGUMENTRequested certificate domain is not in the certificate template’s allowed_domains list.
2313012CERTIFICATE_TEMPLATE_TTL_EXCEEDS_MAXINVALID_ARGUMENTRequested certificate TTL exceeds the certificate template’s max_ttl.
2313013CERTIFICATE_TEMPLATE_KEY_TYPE_NOT_ALLOWEDINVALID_ARGUMENTRequested certificate key type is not in the certificate template’s allowed_key_types list.
2313014CERTIFICATE_TEMPLATE_EXTENDED_KEY_USAGE_NOT_ALLOWEDINVALID_ARGUMENTRequested certificate extended key usage is not in the certificate template’s allowed_extended_key_usages list.
2314001LOCATION_NOT_WELL_FORMEDINVALID_ARGUMENTLocation reference must be a valid identifier.
2314002LOCATION_NOT_SUPPORTEDUNIMPLEMENTEDOnly the global location is available in this release.
2315001WORKSPACE_NOT_ACTIVEFAILED_PRECONDITIONThe workspace referenced by the request is not active.
2315002WORKSPACE_TEARDOWN_FAILEDUNAVAILABLEFailed to deprovision the vault backend for a deleted workspace.
2316001VAULT_SNAPSHOT_FAILEDUNAVAILABLEFailed to take a snapshot of the vault backend.
2316002VAULT_RESTORE_FAILEDUNAVAILABLEFailed to restore the vault backend from a snapshot.
2316003VAULT_ROOT_KEY_ROTATION_FAILEDUNAVAILABLEFailed to rotate the vault backend root key.
2317001PLATFORM_SECRET_NOT_FOUNDNOT_FOUNDThe platform secret path holds no entries.
2317002PLATFORM_SECRET_PATH_NOT_VALIDINVALID_ARGUMENTThe platform secret path is outside the workspace key-value convention.
2318001TAG_KEY_NOT_VALIDINVALID_ARGUMENTThe tag key is not valid.
2318002TAG_VALUE_NOT_VALIDINVALID_ARGUMENTThe tag value is not valid.
2318003TAG_KEYS_NOT_UNIQUEINVALID_ARGUMENTTag keys must be unique within a resource.
2318004TAG_COUNT_EXCEEDS_LIMITRESOURCE_EXHAUSTEDThe resource carries too many tags.
2318005TAG_TYPE_NOT_SETTABLEINVALID_ARGUMENTThe tag type is server-managed and cannot be set by a client.
2319001CAPSULE_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTCapsule workspace ID is required.
2319002CAPSULE_PAYLOAD_SIZE_NOT_VALIDINVALID_ARGUMENTCapsule payload must be between 1 byte and 1 MiB.
2319003CAPSULE_CONTENT_TYPE_NOT_VALIDINVALID_ARGUMENTCapsule content type must be at most 255 characters.
2319004CAPSULE_EXPIRY_NOT_VALIDINVALID_ARGUMENTCapsule expiry must be after its creation.
2319005CAPSULE_NOT_FOUNDNOT_FOUNDCapsule not found.
2319006CAPSULE_ALREADY_ENDEDFAILED_PRECONDITIONThis delivery has already ended and cannot be collected.
2319007CAPSULE_REDEMPTION_SECRET_NOT_VALIDPERMISSION_DENIEDThe redemption secret is not valid for this delivery.
2319008CAPSULE_STATE_NOT_RECOGNISEDDATA_LOSSThe stored capsule state is not a recognised value.
2319009CAPSULE_REDEMPTION_DIGEST_NOT_VALIDINVALID_ARGUMENTCapsule redemption digest is required.
2319010CAPSULE_NAME_NOT_VALIDINVALID_ARGUMENTCapsule name must be a DNS label of 3 to 63 characters.
2319011CAPSULE_WORKSPACE_NOT_FOUNDNOT_FOUNDWorkspace not found.
2601001VAULT_AUDIT_PAYLOAD_HASH_KEY_NOT_CONFIGUREDFAILED_PRECONDITIONThe vault.audit.payload-hash-key property is required and must be set via the VAULT_AUDIT_PAYLOAD_HASH_KEY environment variable.
2605001UNKNOWN_SCHEMA_VERSIONDATA_LOSSSchema version is not recognized.
2606001UNKNOWN_INTEGRATION_VERSIONINVALID_ARGUMENTThe integration version is not recognized.
2606003UNKNOWN_TAXONOMY_EVENTINVALID_ARGUMENTThe taxonomy event is not recognized.
2606004UNKNOWN_MESSAGE_TYPEINVALID_ARGUMENTThe message type is not recognized.
2606005INTEGRATION_EVENT_FIELD_MISSINGINVALID_ARGUMENTThe integration event does not carry a required field.
2606006INTEGRATION_EVENT_FIELD_NOT_VALIDINVALID_ARGUMENTThe integration event carries a field the reader cannot use.
2606008RESTORE_SNAPSHOT_CHUNK_INVALIDINVALID_ARGUMENTA restore snapshot chunk must contain between 1 byte and 1 MiB.
2606009RESTORE_SNAPSHOT_STREAM_EMPTYINVALID_ARGUMENTThe restore snapshot stream must contain at least one chunk.
2606010RESTORE_SNAPSHOT_SIZE_EXCEEDEDRESOURCE_EXHAUSTEDThe restore snapshot exceeds the maximum size.

Vault validates the engines/{engine} path segment before it reaches an engine, and those refusals are argument errors rather than domain codes: a selector that names no configured engine, or the - wildcard on a request that requires a concrete one, is rejected with INVALID_ARGUMENT. The rules that decide which requests accept - are on engine selection.

When you read a federated result, do not infer a resource’s owner from the selector you sent. Use the engine field on the resource itself for any follow-up request.

None of these is ever a request’s error_code. They say why something further down refused, and they surface in one of two places: the errors list of an operation record, or the detail of the error actually returned, written as code:reason. Read them as the cause behind the status you were given.

CodeReasonDescription
2600001ENGINE_UNREACHABLEVault engine is unreachable.
2600002ENGINE_SEALEDVault engine is sealed.
2600003SERVICE_TOKEN_REJECTEDVault engine rejected the privileged service token or denied it access.
2600005MOUNT_OPERATION_FAILEDVault engine mount operation failed.
2600006PKI_ALGORITHM_NOT_SUPPORTEDAlgorithm is not supported by the PKI engine.
2600007PKI_PARENT_MOUNT_NOT_RESOLVABLEParent CA mount path could not be resolved.
2600008PKI_LEAF_MOUNT_NOT_RESOLVABLELeaf certificate mount path could not be resolved.
2600009RESOURCE_NOT_FOUNDVault engine does not have the requested resource.
2600010REQUEST_REJECTEDVault engine rejected the request.
2600011RESPONSE_NOT_READABLEVault engine returned a response the adapter cannot read.
2600012RATE_LIMITEDVault engine rate-limited the request.