Skip to content

Errors & Retry

All errors use this shape:

{
  "error": {
    "code": "string",
    "message": "human readable",
    "details": { "field": "info" }
  },
  "log_cid": "bafy...log"
}

code meaning retry
bad_request validation failed no
unauthorized token invalid/expired no
forbidden capability/policy blocked no
rate_limited too many requests yes
conflict idempotency conflict no
server_error temporary failure yes

Retry: use exponential backoff; pass the same Idempotency-Key to avoid duplicates.