Key-Encryption Key Destruction Not Pending
URI: https://docs.ankatech.co/errors/kek-destruction-not-pending
HTTP Status: 409 Conflict
When you see this
A platform administrator asked to cancel the pending destruction of a tenant's key-encryption key, and the cancel was refused. Nothing was changed.
A tenant key-encryption key is destroyed at its provider or HSM, never only in the platform's records. A destruction request moves a RETIRED key to PENDING_DESTRUCTION and calls no provider: the platform holds the destruction for the deployment's waiting period (30 days by default), and until it ends a cancel returns the key to RETIRED with no provider call. When the period ends the platform checks the key again and only then asks its provider or HSM to destroy it; the key becomes DESTROYED only once a read of the provider confirms it gone. Until then the destruction can be cancelled while the key object still exists, which returns the key to RETIRED.
Common Causes
- The key is not
PENDING_DESTRUCTION: its destruction was never requested, or it was already cancelled.
Response Example
{
"type": "https://docs.ankatech.co/errors/kek-destruction-not-pending",
"title": "Key-Encryption Key Destruction Not Pending",
"status": 409,
"detail": "No destruction of this key-encryption key is pending. Nothing was changed.",
"instance": "/api/v3/admin/platform/tenants/8f14e45f-ceea-467a-9575-0d5b2a1f3c11/key-custody/keks/3c1f7a9e-2b44-4e0d-8f6a-91d2c7b5e0aa/cancel-destruction",
"timestamp": 1793696400,
"extensions": {
"requestId": "9c41e7a2-5b08-4d3f-a6e1-2f7c90b4d815"
}
}
Content-Type: application/problem+json — the response follows RFC 9457 Problem Details.
How to Resolve
- Read the lineage entry: a key whose
statusisRETIREDand whose destruction instants arenullhas nothing to cancel.
Related Errors
- Key-Encryption Key Already Destroyed (409) - The provider has already destroyed the key-encryption key, so its destruction cannot be cancelled
- Key-Encryption Key Provider Failed (502) - The provider or HSM holding the key-encryption key refused a destruction or cancel call;
extensions.providernames it by role
For full schema definitions, examples, and interactive testing, see the Developer Hub Reference.