Skip to main content
Status column is consolidated, not pulled from a single spec table. The spec lists codes in §11.3 and status classes in §11.2, with several codes’ statuses bound by section prose elsewhere. This page joins them.
Every reserved code, its HTTP status, the spec section that triggers it, and a one-line note on the client-side response. For the envelope shape itself, see Error envelope.

All reserved codes (§11.3)

Status for invitation_not_found is not explicitly bound in spec text. 404 is the conventional reading; a service may also use 410 if the invitation was previously valid and atomically superseded. Don’t program against the status alone — inspect code.

Grouped by what you should do about it

Transient — retry with a small change

  • expired_signature — re-sign, retry.
  • rate_limit_exceeded — sleep Retry-After seconds, retry.
  • owner_session_too_stale — re-authenticate the human, retry.

Misconfigured — surface to the developer

  • replayed_nonce — your signer is buggy.
  • malformed_request — fix the request shape.
  • unsupported_recipient_type — read the discovery doc.
  • invalid_attestation / attestation_required — fix attestor wiring.

Onboarding required

  • unknown_account (implicit signup disabled) — call POST /accounts.
  • revoked_key / account_expired — start over with a fresh agent.

State machine boundary

  • already_claimed / not_claimed — read the spec state machine; the operation doesn’t apply.
  • owner_authentication_required — needs the human in the loop.
  • owner_binding_blocked — needs the human in the loop, full stop.

Auth surface

  • invalid_signature — programmer error or hostile input.
  • invitation_expired / invitation_not_found — invitation is gone; re-issue.

Custom codes

Services MAY add their own codes beyond §11.3 (example_quota_exceeded, feature_not_in_plan, etc.) and SHOULD prefix them with a service-specific namespace. The envelope shape is the same — clients can ignore unknown codes safely.

Further reading