Skip to content

Errors

When something goes wrong, Qevron returns an appropriate HTTP status code and a descriptive JSON body.

Error format (OpenAI compatible)

json
{
  "error": {
    "message": "An error occurred while processing the request",
    "type": "qevron_error",
    "code": "model_not_found",
    "param": "model"
  }
}
FieldDescription
error.messageHuman-readable description
error.typeError category (e.g. qevron_error, upstream_error)
error.codeMachine-readable code (e.g. model_not_found)
error.paramThe parameter that caused the error (if any)

Some responses also include a qevron request-id field for tracing.

HTTP status codes

CodeMeaningTypical cause
400Bad RequestInvalid request format or missing field
401UnauthorizedMissing/invalid API key
403ForbiddenIP restriction, disabled group or insufficient balance
404Not FoundModel or resource not found
429Too Many RequestsRate limit (RPM/TPM) exceeded
500Internal Server ErrorServer error
502Bad GatewayUpstream provider error
503Service UnavailableAll channels exhausted / overloaded

Provider-specific error formats

Non-OpenAI endpoints use the corresponding provider's error format.

Anthropic (/v1/messages):

json
{ "type": "error", "error": { "type": "invalid_request_error", "message": "..." } }

Gemini (/v1beta/...):

json
{ "error": { "code": 400, "message": "...", "status": "INVALID_ARGUMENT" } }

Common errors

SymptomLikely causeFix
401Missing/wrong keyIs Authorization: Bearer sk-... correct?
404 model_not_foundWrong model name or no accessList with /v1/models
429Rate limitWait until the X-RateLimit-Reset-* time
403Quota exhausted / IP blockCheck your quota and IP restrictions

TIP

For retryable errors (429, 502, 503), retry after a short wait (exponential backoff). Qevron already retries automatically across channels.

Qevron — AI gateway. Arpanet / OpenAI / Anthropic / Gemini compatible.