Error Codes Table
All error identifiers return standardized codes indicating failure causes and client retry policies:
| Error Code | Description & Meaning | Client Action / Retry? |
|---|---|---|
| ERROR_KEY_DOES_NOT_EXIST | API key provided in clientKey or header is invalid or deleted. | Do not retry. Check credentials in cabinet. |
| ERROR_ZERO_BALANCE | Wallet balance is insufficient to reserve cost for the requested task. | Do not retry until wallet balance is topped up. |
| ERROR_NO_SUCH_CAPCHA_ID | The requested taskId was not found or has exceeded the 1-hour cache retention. | Do not retry. Dispatch a new solve task. |
| ERROR_TOO_MUCH_REQUESTS | Account exceeded the creation (60/min) or polling (1,200/min) rate budget. | Retry with exponential backoff after 1–5 seconds. |
| ERROR_NO_SLOT_AVAILABLE | Your account has 20 tasks in progress, or all solvers are busy right now. | Retry in a few seconds. |
| ERROR_TASK_NOT_SUPPORTED | The specified task type is unrecognized or deprecated. | Do not retry. Inspect task.type in payload. |
| ERROR_BAD_PARAMETERS | Missing required parameters (e.g. proxy missing for AntiCloudflareTask). | Do not retry without fixing request schema. |
| ERROR_DOMAIN_NOT_ALLOWED | Host is restricted under our Acceptable Use Policy (government, banking, critical infra). | Do not retry. Domain prohibited on network. |
| ERROR_SERVICE_UNAVAILABLE | Transient backend maintenance or upstream node capacity exhaustion. | Retry with jittered backoff after 3–10 seconds. |
| ERROR_CAPTCHA_UNSOLVABLE | Target challenge page did not complete or proxy dropped connection. (Uncharged). | Check proxy health and target URL, then retry. |