Skip to content

Error reference

Every error response from the Survey Coder Pro API follows the same shape:

{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Field 'responses' must be a non-empty array.",
"request_id": "req_01HXJZK4ABCDEF",
"doc_url": "https://docs.surveycoder.io/errors/validation-error"
}
}

Every code below has a dedicated page with the typical HTTP status, why it happens, and how to fix it. If you’re debugging a live request, follow the doc_url straight from the JSON.

CodeStatusSummary
UNAUTHORIZED401No API key, invalid key, or wrong header name.
AUTH_ERROR401Generic auth failure — couldn’t resolve org from key.
KEY_REVOKED401The key was active but has been revoked.
KEY_EXPIRED401The key is past its expiry timestamp.
INSUFFICIENT_SCOPE403Key is valid but missing required scope.
RATE_LIMITED429Over per-key requests-per-minute limit.
NO_ORG401Key valid but no organization found.
CodeStatusSummary
INSUFFICIENT_CREDITS402Balance is at or below zero.
TRIAL_LIMIT_EXCEEDED402Free trial has been used up.
NEGATIVE_BALANCE402Negative-allowed plan hit its floor.
CodeStatusSummary
VALIDATION_ERROR422Body shape or types are wrong.
NOT_FOUND404Resource doesn’t exist or isn’t in your org.
ALREADY_CODING409Question is already mid-coding.
INVALID_STATE409Resource is in a state that can’t accept this op.
EMPTY_CODEBOOK422Trying to code/clone from a question with no codebook.
NO_DATA422Trying to operate on a question with no responses.
NOT_GROUPED409Op requires question grouping; none exists.
JOB_ALREADY_RUNNING409A coding or codebook job is already running.
CodeStatusSummary
CODEBOOK_GENERATION_FAILED500LLM failed to generate a codebook.
CODING_FAILED500Pipeline failed mid-run.
INTERNAL_ERROR500Unhandled server error.
GATEWAY_TIMEOUT504Upstream call timed out.
CONFIG_ERROR500Server is missing required config.
DB_ERROR500Database query failure.
CodeStatusSummary
SPSS_SERVICE_ERROR503SPSS microservice degraded (.sav export only).
SERVICE_UNAVAILABLE503A dependency is down. Retry.
QUEUE_UNAVAILABLE503Redis or BullMQ unavailable. Async jobs can’t queue.

Every error response includes a request_id (e.g. req_01HXJZK4ABCDEF). Quote it in any support email — we use it to find your specific request in the logs in seconds.