Skip to content

Custody Rollback Conflict

URI: https://docs.ankatech.co/errors/custody-rollback-conflict
HTTP Status: 409 Conflict

When you see this

A roll back of a swapped window found a live key that no longer holds the bytes the swap wrote — it was changed after the swap — so restoring its previous copy would have lost that change. That key was left as it is.

This problem is answered by the key service to the platform's own administration service while it drives a key custody move, one bounded re-wrap step per call. It is never answered to a browser, an SDK or an API client, so its instance names an internal call and is not reproduced here. An operator sees its effect on the move instead: the move's state on the tenant's key custody read, and the audit trail of the move.

Response Example

{
  "type": "https://docs.ankatech.co/errors/custody-rollback-conflict",
  "title": "Custody Rollback Conflict",
  "status": 409,
  "detail": "A key changed after the swap; the previous copy was not restored.",
  "correlationId": "6a0c2f9e-3d71-4b58-8e24-c1f5a7d9b036",
  "timestamp": 1793696400
}

Content-Type: application/problem+json — the response follows RFC 9457 Problem Details. The detail is fixed: it names no tenant, key, key-encryption key or count.

How to Resolve

  1. The move is not failed: past the swap it only goes forward, so the roll back step is asked again every 15 minutes. It does not advance until an operator acts. Read the move's state and the tenant's keys, and contact support with the move id.

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