Error format
Chronicle API errors return a consistent shape.| Field | Type | Description |
|---|---|---|
error | object | Error payload. |
error.code | string | Machine-readable error code. |
error.message | string | Human-readable error message. |
error.status | number | HTTP status, mirrored in the body for convenience. |
Common status codes
400 Bad Request
400 Bad Request
The request is malformed or missing required fields.
error.code is one of BAD_REQUEST or WORKSPACE_ID_REQUIRED (MCP/JWT path with no workspace_id in body or query).Common causes:- Missing required fields
- Invalid JSON
- Invalid parameter values
- Missing
workspace_idon JWT-authenticated MCP requests
401 Unauthorized
401 Unauthorized
402 Payment Required
402 Payment Required
Workspace usage limits hit.
error.code is one of PRICING_REMIX_OVER_LIMIT or PRICING_DOCUMENT_LIMIT_REACHED.Surface a clear billing/upgrade message to the user — retrying will not help until the limit is lifted.403 Forbidden
403 Forbidden
The API key or JWT is valid, but the resource is outside the caller’s reach.
error.code is one of INSUFFICIENT_PRIVILEGES (chr_* key targeting a different workspace), WORKSPACE_ACCESS_DENIED (JWT user lacks workspace membership), or MCP_NOT_ENABLED (user not in the MCP feature allowlist; only list_workspaces is usable in this state).404 Not Found
404 Not Found
The requested resource does not exist or is not accessible to the workspace.
error.code is one of DOCUMENT_NOT_FOUND, TEMPLATE_NOT_FOUND, WORKSPACE_NOT_FOUND, or NOT_FOUND (unknown generation job).Common causes:- Unknown template ID
- Unknown presentation ID
- Unknown generation job ID
429 Too Many Requests
429 Too Many Requests
The request exceeded the per-API-key rate limit.
error.code is
API_KEY_RATE_LIMITED. Back off and retry.500, 502, 503, 504
500, 502, 503, 504
A temporary server-side or upstream failure occurred.
error.code is INTERNAL_ERROR or UNKNOWN_INTERNAL_ERROR.Retry guidance
Retry these cases:
429 Too Many Requests500 Internal Server Error502 Bad Gateway503 Service Unavailable504 Gateway Timeout
Do not blindly retry these cases:
400 Bad Request401 Unauthorized402 Payment Required403 Forbidden404 Not Found