Skip to main content

Error reference

Tenant KMS endpoints return errors in one of two shapes. The onboard and probe failures return a human-readable message in error (with an optional details field):
{ "error": "KMS access denied. Check that the IAM/RBAC grant gives KnoxCall both Encrypt and Decrypt on this key.", "details": "..." }
The unseal and rotate endpoints return a machine-readable code in error plus a message:
{ "error": "not_sealed", "message": "Tenant is not currently sealed" }
This table is non-exhaustive — it lists the common failures. Validation errors (missing provider, kms_key_ref, malformed config) also return 400 with a descriptive error message.

Onboard / probe failures (POST /admin/tenant-kms)

These return { error: "<message>", details?: "<string>" }.
Statuserror messageMeaning
400KMS access denied. Check that the IAM/RBAC grant gives KnoxCall both Encrypt and Decrypt on this key.The probe encrypt/decrypt round-trip was denied by your KMS IAM/RBAC policy
400Field "<name>" is not permitted in tenant KMS config. ...config contained a blocked static-credential field (access key, secret key, client secret, private key, service-account key, etc.) — use STS/WIF/SA-impersonation instead
400KMS probe roundtrip mismatch — refusing to onboard a key we cannot reliably decrypt with.The wrap+unwrap probe did not return the original plaintext
400KMS probe failed.The probe failed for another reason (see details)
401authentication requiredNo authenticated session
400X-Tenant-ID header requiredX-Tenant-ID header missing
403<reason>Caller is not an owner/admin of the tenant
500Failed to persist BYOK configuration.The configuration probe passed but persisting it failed (see details)
502KMS provider unreachable during probe. Try again in a minute.KnoxCall could not reach the KMS provider during the probe

Step-up required (POST /admin/tenant-kms/unseal, POST /admin/tenant-kms/rotate)

These endpoints require a recent step-up verification. When one is missing or expired:
StatusResponseMeaning
403{ "error": "Recent step-up verification required for this action", "requires_step_up": true, "max_age_minutes": <n> }Re-verify step-up (e.g. POST /auth/2fa/verify-step-up or POST /auth/passkey/verify-step-up) within the last max_age_minutes and retry

Unseal / rotate failures

These return { error: "<code>", message: "<string>" }.
StatusCodeMeaning
404no_kms_configNo customer KMS configured for this tenant (unseal only)
404no_active_keyNo active master key found — required for rotation
409not_sealedTenant is not currently sealed (unseal only)
409sealedCannot rotate while sealed — unseal first
500provider_resolve_failedKMS provider could not be constructed from the stored config (unseal)
500provision_failedProvisioning a new tenant master key failed (rotate)
502unseal_failedUnseal roundtrip failed — KMS still unreachable or access still denied (includes a reason field)