Skip to main content

Error codes

Every code below appears as error.code in the standard error envelope:

{
"error": {
"code": "<CODE>",
"message": "…",
"timestamp": "2026-04-21T12:34:56.789Z",
"requestId": "req_…"
}
}

code, message, and timestamp are always present. requestId is included once the route handler has generated one (middleware-level rejections like INVALID_API_KEY omit it). Rate-limit and service-warming responses add retryAfterSeconds alongside the standard Retry-After HTTP header.

400 — Validation

CodeWhenAction
MISSING_AUDIO_FILENo audio field in the multipart body.Add the file.
UNSUPPORTED_FORMATFile isn't a valid MP3/WAV/M4A/WebM/OGG/FLAC.Convert or fix the file.
AUDIO_TOO_SHORTAudio under 3 minutes.Submit longer audio.
AUDIO_TOO_LONGAudio over 45 minutes.Trim the audio.
AUDIO_DURATION_UNAVAILABLEThe audio duration could not be read (file corrupted or unsupported).Re-encode the file and resubmit.
FILE_TOO_LARGEFile exceeds 25 MB.Compress or trim.
INVALID_LANGUAGE_CODENot a 2-letter ISO 639-1 code.Use en, es, fr, etc.
INVALID_EXTERNAL_IDexternalId empty or > 255 chars.Provide 1–255 chars, or omit.
INVALID_METADATAmetadata field is not valid JSON.Fix the JSON.
INVALID_STATUSstatus query param on /runs not in allow-list.Use a valid lifecycle value.
INVALID_SERVICE_TYPEserviceType query param on /runs not in allow-list.Use speech or cv_deepmatch.
INVALID_DATEcreatedAfter/createdBefore not valid ISO 8601.Use a proper datetime.
INVALID_PARAMETERSSome cutSetting out of bounds.Check parameter ranges.

401 — Authentication

CodeAction
MISSING_API_KEYNo X-API-Key / Authorization header. Add it.
INVALID_API_KEYKey unrecognized or marked inactive. Check your env var.
API_KEY_EXPIREDKey's expiry has passed. Rotate to a fresh key.
CLIENT_INACTIVEThe account behind this key is disabled. Contact support.

402 — Credits

CodeAction
INSUFFICIENT_CREDITSTop up before retrying. Check GET /api/v1/credits.

403 — Permissions

CodeAction
MULTILINGUAL_NOT_ENABLEDContact your account manager to enable non-English analysis.
IP_NOT_ALLOWEDThe API key has an IP whitelist and your request didn't originate from an allowed address.

404 — Not found

CodeAction
REQUEST_NOT_FOUNDWrong requestId, or it belongs to a different client.

429 — Rate limiting

CodeWhereAction
RATE_LIMIT_EXCEEDEDSubmit endpoint.Exponential backoff.
POLL_RATE_LIMITEDPoll endpoint, same requestId polled faster than every 10s.Respect Retry-After.

503 — Service unavailable

CodeAction
SERVICE_WARMING_UPScoring service still warming up (15–20 min after a new deploy). Retry with backoff.

Terminal failures on a run (status: "failed")

Returned inside a 200 OK poll response — the error.code reveals which pipeline step failed. No credits are charged on failed runs.

CodeMeaning
TRANSCRIPTION_FAILEDAudio quality issue or transcription provider error.
TRANSCRIPTION_LOW_CONFIDENCEAudio content doesn't match the requested language.
SCORING_FAILEDScoring service error after retry.
VOCAB_MODEL_TIMEOUTVocabulary model timed out.
FLUENCY_MODEL_TIMEOUTFluency model timed out.
ACCENT_SCORE_UNAVAILABLEAccent could not be measured. The run fails rather than returning a score we didn't measure — resubmit.
SERVICE_CONFIGURATION_ERRORExternal provider misconfigured. Contact support.
STUCK_TIMEOUTRun exceeded its watchdog timeout.
INTERNAL_ERRORUnexpected error. Contact support.