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.
{
"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.