Skip to content
autonym.dev
ContentsHide contents

Errors

Every error is an RFC 9457 Problem Details object. The type is a URN of the form urn:autonym:error:<code>. The detail is written for a developer and never contains an entry value.

json
{
  "type": "urn:autonym:error:level_exceeded",
  "title": "Requested level exceeds the grant",
  "status": 403,
  "detail": "The grant allows dining at L1. L2 was requested.",
  "instance": "/v1/context"
}

Codes

The registry, from specification section 9.

Code Status Meaning
invalid_scope 400 The scope string is malformed or names a domain or level that does not exist.
purpose_missing 400 A grant request arrived without a purpose.
domain_not_granted 403 The grant does not cover the domain that was asked for.
level_exceeded 403 The level asked for is above the grant's ceiling for that domain.
grant_exhausted 403 The grant's read allowance is spent.
safety_write_forbidden 403 A write was attempted against a safety-critical key, which is declared-only.
inference_forbidden 403 An entry was proposed into a domain that is never inferred.
grant_revoked 401 The grant was revoked.
grant_expired 401 The grant passed its expiry.
dpop_required 401 A service client presented a bearer token without DPoP.
dpop_invalid 401 The DPoP proof did not verify against the token.
proposal_not_found 404 No proposal with that identifier is in the review queue.
proposal_decided 409 The proposal was already confirmed or withdrawn.
value_rejected 422 The value failed the domain's validator, for example an account number in finance.
rate_limited 429 Too many requests. Retry after the interval in the RateLimit-* headers.
handle_moved 301 The handle moved. The response carries moved_to.

Statuses are proposed until spec/errors.json exists.