Skip to Content
ErrorsError Reference

Error Reference

Every error from the Curate-Me gateway follows a consistent JSON shape:

{ "error": { "code": "rate_limit_exceeded", "message": "Rate limit exceeded: 60 requests/min for key cm_sk_xxx", "request_id": "req_01hwz3kj4p5qm8n9v2t6y7", "governance_stage": "rate_limit", "retry_after": 14 } }
FieldTypeDescription
codestringMachine-readable error code
messagestringHuman-readable explanation
request_idstringUse this when filing a support ticket
governance_stagestringWhich governance stage rejected the request (gateway errors only)
retry_afterintegerSeconds to wait before retrying (429 only)

Quick lookup

Error codes by governance stage

StageCommon error codesHTTP status
Authinvalid_api_key, api_key_revoked, org_suspended401
Plan enforcementplan_limit_exceeded, trial_expired402
Body sizebody_too_large413
Rate limitrate_limit_exceeded429
Cost estimatebudget_exceeded, daily_limit_exceeded402
Budget hierarchyorg_budget_exceeded, team_budget_exceeded, key_budget_exceeded402
Runner sessionsession_budget_exceeded402
PII scanpii_detected403
Content safetyprompt_injection_detected, jailbreak_detected403
Security scansecurity_violation403
AI security classifier— (reduces false positives from content safety)
Model allowlistmodel_not_allowed403
HITL gatehitl_approval_required202 (pending, not an error)

Every error response includes X-CM-Request-Id in the headers. Always include this value when contacting support.