Skip to content

Projection Signing Key State Changed

URI: https://docs.ankatech.co/errors/projection-signing-key-state-changed
HTTP Status: 409 Conflict

When you see this

A revocation of a projection signing key named, in expectedState, the state the caller saw the key in, and the key is no longer in that state. What a revocation does depends on the state — revoking ACTIVE promotes the NEXT key at once, revoking NEXT publishes a replacement, revoking PREVIOUS removes the key — so a revocation decided on one state is never applied to another. Nothing was changed.

extensions.currentState is the state the key is in now. The check has the semantics of an RFC 9110 §13.1.1 If-Match, carried in the request body because it applies to one key of the set.

Common Causes

  • A rotation — another administrator's, or the platform's own schedule — moved the key between the read and the revocation.

Response Example

HTTP/1.1 409 Conflict
Content-Type: application/problem+json
{
  "type": "https://docs.ankatech.co/errors/projection-signing-key-state-changed",
  "title": "Projection Signing Key State Changed",
  "status": 409,
  "detail": "The projection signing key is no longer in the state the request expected",
  "instance": "/api/v3/admin/platform/projection-signing-keys/pR7mVb2KxQ9tLw4ZcN8sHd3FgJ1yU6aE0oT5iWkMnXg/actions/revoke",
  "timestamp": 1798596000,
  "extensions": {
    "requestId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
    "currentState": "ACTIVE"
  }
}

Content-Type: application/problem+json — the response follows RFC 9457 Problem Details.

How to Resolve

  1. Read extensions.currentState and decide again whether the revocation is still wanted in that state: revoking a key that is now ACTIVE is an incident action.
  2. If it is, repeat the revocation with expectedState set to the current state. Do not resend automatically on the operator's behalf.

See Projection Signing Keys for the screen that lists, rotates and revokes these keys.

For full schema definitions, examples, and interactive testing, see the Developer Hub Reference.