Key-State Seal Rotation In Progress
URI: https://docs.ankatech.co/errors/key-state-seal-rotation-in-progress
HTTP Status: 409 Conflict
When you see this
A rotation of the key-state seal key was asked for while an earlier rotation has not ended. One rotation runs at a time: a new one starts only once the previous generation is retired. Nothing was changed.
Returned by POST /api/v3/admin/platform/key-state-seal-keys/rotations (rotateKeyStateSealKey). extensions.reason names what is still in progress:
extensions.reason | Meaning |
|---|---|
PREVIOUS_GENERATION_HELD | A superseded generation is still PREVIOUS: its re-seal pass has not retired it |
PASS_RUNNING | The re-seal pass is still moving key rows to the new generation |
PASS_BLOCKED | The re-seal pass stopped on a row it refused to re-seal |
Common Causes
- A second rotation was started before the first one read
COMPLETE. - A compromise rotation ended
BLOCKEDon rows that did not verify, and they have not been resolved.
Response Example
{
"type": "https://docs.ankatech.co/errors/key-state-seal-rotation-in-progress",
"title": "Key-State Seal Rotation In Progress",
"status": 409,
"detail": "A key-state seal key rotation has not ended: a new rotation starts once the previous generation is retired. Nothing was changed.",
"instance": "/api/v3/admin/platform/key-state-seal-keys/rotations",
"extensions": {
"reason": "PASS_RUNNING",
"requestId": "6f1c2d3e-4a5b-4c6d-8e7f-9a0b1c2d3e4f"
}
}
Content-Type: application/problem+json — the response follows RFC 9457 Problem Details. This is an Admin API body, so the correlation identifier is extensions.requestId; see Error Index & Overview.
How to Resolve
- Read
getCurrentKeyStateSealKeyRotation(GET /api/v3/admin/platform/key-state-seal-keys/rotations/current) and wait until itsstatusisCOMPLETE. - If it reads
BLOCKED, resolve the rows it lists inblockedRowsfirst, against each key's audit history. - Start the new rotation again.
For full schema definitions, examples, and interactive testing, see the Developer Hub Reference.