Skip to content

Errors

Stable public categories so clients can handle failure without guessing.

Examples below are synthetic. Do not paste production tokens or tenant hostnames into tickets.

Categories

CategoryTypical HTTPWhat it means for the caller
Unauthenticated401Missing/invalid Bearer; follow WWW-Authenticate / resource metadata
Forbidden403Authenticated but scope, pack, or write consent insufficient
Not ready503 (or client sees failed /ready)Process up but not safe to send traffic yet
Rate limited429Slow down and retry with backoff
Invalid arguments400 / tool errorZod/schema validation failed — fix args from the tool schema
Upstream / peer unavailable502 / 503Ledger peer path unavailable — retry later; do not spin hot
Internal500Unexpected failure — retry with backoff; contact operator if persistent

Tool-level errors surface as MCP tool results with structured messages suitable for an LLM. Prefer the category table over scraping prose.

Synthetic examples

401 — missing bearer

HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer FAKESECRET_g3h4i5j6k7l8m9n0o1p2="https://legate.example.internal/.well-known/oauth-protected-resource"

403 — write without consent

{
  "error": "forbidden",
  "category": "forbidden",
  "message": "Write consent required for prepare_transaction"
}

429 — rate limited

{
  "error": "rate_limited",
  "category": "rate_limited",
  "message": "Retry after 2s"
}

Client guidance

  1. On 401, re-run Connect / token mint — do not reuse expired JWTs.
  2. On 403, check pack scopes and write consent with the operator.
  3. On 429 / 503, exponential backoff; gate on /ready when load balancing.
  4. Never log Authorization headers.

Was this page clear?