Skip to content

Error codes

Every error from the API, CLI, MCP and your app’s runtime is JSON with a code, a message that says what to do, and a docsUrl pointing at one of these pages.

Requests and sign-in

Code HTTP Retrying helps
validation_failed 400 After changing the request
confirmation_required 400 After changing the request
unauthenticated 401 After changing the request
checkout_required 403 After a plan, setting or role change
forbidden 403 After a plan, setting or role change
two_factor_required 403 After changing the request
not_found 404 After changing the request
conflict 409 After changing the request
method_not_allowed 405 After changing the request
rate_limited 429 Yes, after the wait
feature_unavailable 501 After a plan, setting or role change
internal_error 500 Yes, shortly

End-user sign-in

Code HTTP Retrying helps
invalid_credentials 401 After changing the request
email_not_verified 403 After a plan, setting or role change
email_taken 409 After changing the request
invalid_token 400 After changing the request
sign_in_locked 429 Yes, after the wait
sign_in_backoff 429 Yes, after the wait
bot_check_failed 403 After changing the request
user_banned 403 After a plan, setting or role change
auth_method_disabled 403 After a plan, setting or role change
auth_not_deployed 501 After a plan, setting or role change

Account state

Code HTTP Retrying helps
account_locked 402 After a plan, setting or role change
account_suspended 403 After a plan, setting or role change
account_cancelled 402 After a plan, setting or role change

Plan counts

Code HTTP Retrying helps
plan_limit_reached 403 After a plan, setting or role change
downgrade_blocked 409 After a plan, setting or role change
add_on_in_use 409 After a plan, setting or role change
add_on_not_available 403 After a plan, setting or role change
engine_not_on_plan 403 After a plan, setting or role change
postgres_engine_required 409 After a plan, setting or role change
extension_not_supported 400 After changing the request
extension_in_use 409 After a plan, setting or role change
parked_slots_full 403 After a plan, setting or role change
park_blocked 409 After changing the request

Usage limits

Code HTTP Retrying helps
requests_capped 429 Yes, after the wait
cpu_capped 429 Yes, after the wait
database_storage_full 507 After a plan, setting or role change
d1_size_limit 507 After a plan, setting or role change
parked_limit_reached 429 After a plan, setting or role change
parked_storage_full 507 After a plan, setting or role change
file_storage_full 507 After a plan, setting or role change
email_quota_exceeded 429 Yes, after the wait
postgres_read_only 429 Yes, after the wait
mau_capped 403 Yes, after the wait
realtime_capacity 503 Yes, after the wait
vector_records_capped 507 After a plan, setting or role change

Email

Code HTTP Retrying helps
email_sending_suspended 403 After a plan, setting or role change
email_rate_limited 429 Yes, after the wait
email_too_many_recipients 400 After changing the request
email_send_failed 502 Yes, shortly
email_appeal_not_open 409 After a plan, setting or role change

Sender domains

Code HTTP Retrying helps
email_domain_invalid 400 After changing the request
email_domain_not_verified 422 After a plan, setting or role change

AI gateway

Code HTTP Retrying helps
ai_user_cap_reached 429 Yes, after the wait
ai_project_cap_reached 429 Yes, after the wait
ai_credit_exhausted 402 After a plan, setting or role change

Projects and domains

Code HTTP Retrying helps
not_deployed 503 After a plan, setting or role change
project_provisioning 409 Yes, after the wait
project_deleted 410 After a plan, setting or role change
project_archived 409 After a plan, setting or role change
archive_blocked 409 After changing the request
no_free_slot 403 After a plan, setting or role change
export_expired 410 After changing the request
domain_taken 409 After a plan, setting or role change

Outbound requests

Code HTTP Retrying helps
outbound_blocked 403 After changing the request
edge_unavailable 503 Yes, shortly

Sandboxes

Code HTTP Retrying helps
sandbox_rate_limited 429 Yes, after the wait
sandbox_expired 410 After a plan, setting or role change

Cron

Code HTTP Retrying helps
cron_timeout 504 After changing the request
cron_interval_too_short 422 After changing the request

Imports

Code HTTP Retrying helps
import_source_unreachable 502 After changing the request
import_blocked 422 After changing the request
import_running 409 Yes, after the wait
import_expired 409 After a plan, setting or role change

Deploys and migrations

Code HTTP Retrying helps
deploy_failed 422 After changing the request
destructive_migration 409 After changing the request
migration_failed 422 After changing the request
migration_conflict 409 After changing the request
bundle_too_large 413 After changing the request
assets_too_large 413 After changing the request
assets_missing 409 After changing the request
publish_too_large 413 After changing the request
deploy_blocked_by_scanner 422 After changing the request

As Markdown: errors.md