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.
plan_not_selected
A plan must be selected before performing this action.
plan_does_not_support_overage_usage
Current plan does not allow usage beyond included limits.
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.
Generic
These codes are returned when a more specific code does not apply — typically for request validation, missing resources, and unexpected failures.bad_request
Request was malformed or unparseable.
validation_error
Request body or parameters failed schema validation.
not_found
Requested resource does not exist or is not accessible.
conflict
Request conflicts with the current state of the resource.
forbidden
Authenticated caller is not permitted to perform this action.
internal_error
Unexpected server error — retry, and contact support if it persists.
Internal
feature_check_failed
Feature availability check failed.