Error response format
Standard fields (RFC 9457)
| Field | Type | Description |
|---|---|---|
type | string | URI linking to this error’s documentation page. |
title | string | Short, static summary (e.g. “Payment Required”). Does not change between occurrences. |
status | integer | HTTP status code. |
detail | string | Human-readable explanation of what went wrong. |
Extension fields
| Field | Type | Description |
|---|---|---|
error_code | string | Stable, machine-readable identifier. Use this for programmatic branching. |
resolve | object | Actionable resolution guidance. Omitted when no self-service fix exists. |
Resolve object
| Field | Type | Description |
|---|---|---|
message | string | Human-readable call-to-action (e.g. “Select a billing plan to continue.”). |
url | string | Deep link into the where a human can fix the issue. |
action | string | Machine-readable action type for agents (e.g. select_plan). |
method | string | HTTP method for the resolution endpoint. |
endpoint | string | API path an agent can call to fix the issue. |
Handling errors
For UI clients
- Switch on
error_codeto render the appropriate component or message. - Use
resolve.urlto link the user to the relevant platform page. - Fall back to displaying
detailif theerror_codeis unrecognized.
For agents and SDKs
- Switch on
error_codeto decide the remediation path. - Use
resolve.actionas a semantic intent (e.g.select_plan,contact_support). - Call
resolve.method+resolve.endpointto fix the issue programmatically. - Dereference
typefor documentation on the specific error.
Error codes by category
Billing & subscription
no_active_plan
No billing plan selected.
billing_info_required
Payment method needed for paid plans.
plan_required
A plan is required before creating projects.
payment_past_due
Payment is overdue.
subscription_suspended
Subscription suspended for non-payment.
subscription_inactive
Subscription is not active.
subscription_not_found
Billing subscription missing.
no_active_subscription
No subscription exists for spend limit configuration.
Usage limits
spend_limit_exceeded
Monthly budget cap reached.
credits_depleted
Credit balance exhausted.
rate_limit_exceeded
Too many requests — rate limit exceeded.
Authentication & authorization
auth_required
No valid authentication provided.
api_key_required
No valid API key provided.
pro_required
Pro subscription needed.
not_a_member
Not a member of the organization.
Account
email_exists
Account already exists with this email.
token_invalid
Reset token is invalid.
token_expired
Reset token has expired.
social_login_only
Account uses social login.
invite_expired
Organization invite has expired.
email_verification_required
Email verification required to complete registration.
Internal
feature_check_failed
Feature availability check failed.