Error codes

What each Plexivo API error code means, its HTTP status, and what to do about it.

When a request fails, the Plexivo API answers with an HTTP status and a stable code your program can act on. This page lists the codes you are most likely to meet.

Error format#

json
{
  "error": {
    "code": "validation_failed",
    "message": "one or more fields are invalid",
    "details": { "fields": { "storage_gb": ["can only grow (now 20 GB)"] } }
  }
}
  • code is stable. Build your logic on it.
  • message explains the problem to a person and may change.
  • details carries what you need to fix it, such as the fields that failed, when there is something to say.

Idempotency errors use the application/problem+json format, with code, detail and fix. Every response carries an x-trace-id header; quote it when you contact support.

Sign-in and access#

CodeStatusWhat to do
unauthorized401The token or API key is missing, wrong, revoked or expired. Check the Authorization header, or create a new key.
reauthentication_required401A console session ended. details.reason is idle or absolute. Sign in again.
forbidden403Your role, or the key’s permissions, do not allow this. The message says what was refused; for an API key it names the scope needed.
step_up_required403Confirm your password or authenticator code, then retry.
support_access_required403Someone outside the organisation tried to reveal a secret or data without an approved request. See Support and agency access.
organisation_suspended403The organisation cannot create anything new. Contact support.

Requests#

CodeStatusWhat to do
validation_failed422Fix the fields listed in details.fields and send again.
not_found404The resource does not exist, or you cannot see it.
name_taken409Choose another name.
illegal_transition409The resource is not in a state that allows this. Check its status and retry later.
quote_expired, quote_changed, quote_invalid409Ask for a new estimate and confirm the new price.
price_changed409The price moved since you saw it. Review it and confirm again.
idempotency_key_reused409Use a new Idempotency-Key for a different request.
idempotency_in_flight409The first request with this key is still running. Wait and retry with the same key.
invalid_idempotency_key400Use a key of 256 bytes or fewer.
endpoint_retired410This endpoint is no longer available. The message says what replaced it.

Limits and capacity#

CodeStatusWhat to do
rate_limited429Too many requests. Wait for the Retry-After seconds and retry.
too_many_requests429An API key’s per-minute, concurrent or daily limit was reached. See Limits on every key.
quota_exceeded403Your plan’s limit for this kind of resource is reached. Delete something, or change your plan.
spend_limit_exceeded422The API key’s monthly spend limit would be passed. Raise the limit or use another key.
contact_sales422What you asked for is arranged with sales. Talk to sales.
no_capacity, queued_capacity503There is no room for this in its region right now. Nothing was created or charged. Retry in a few minutes.

Billing#

CodeStatusWhat to do
plan_required402Choose a plan in Settings → Plan.
wallet_empty402Add money to your wallet.
insufficient_funds422The wallet balance is too low for this. Add money.
first_deploy_verification_required428Complete the one-time check the console asks for before your first deployment.
not_eligible422The offer, such as migration credits, does not apply. details.reasons says why.

Plexivo AI#

CodeStatusWhat to do
ai_disabled403Plexivo AI is turned off for this organisation.
ai_daily_cap429Today’s Plexivo AI limit is reached. Try again tomorrow.
plan_expired, plan_stale409The plan you are approving is out of date. Ask Plexivo AI to plan again.
ai_unavailable503Plexivo AI is briefly unavailable. Retry shortly.

Temporary problems#

A 503, such as database_unavailable or payment_provider_unavailable, means something Plexivo depends on is briefly unavailable. Retry with backoff and the same Idempotency-Key. A 500 with internal_server_error is ours to fix: send us the x-trace-id.

Updated 27 October 2026