Are you a large language model? This page is available as raw markdown at
/errors.md. The full docset is at /llms-full.md and the index is at /llms.md.Errors
Codes are the same in the CLI, the dashboard and MCP tool results. Errors you can fix name the next step. Failures on C3's or a provider's side show a report code to quote to support.
Account and billing
| Code | Meaning | What to do |
|---|---|---|
EMAIL_VERIFICATION_REQUIRED | Email not verified | c3 verify-email, click the link, retry |
INSUFFICIENT_CREDITS | Balance cannot cover the job's reserve | c3 topup, or lower time |
CONCURRENCY_LIMIT | Plan's chip limit reached | Wait, c3 cancel a job, or c3 upgrade |
403 Invalid or revoked API key | Key wrong or revoked | c3 apikey create, update the host |
401 invalid_token | Login session expired | c3 login again; MCP hosts: remove and re-add the server |
FORBIDDEN | Account restricted, or resource belongs to another organisation | c3 whoami; contact support if unexpected |
Submission
| Code or message | Meaning | What to do |
|---|---|---|
'script' field is required | .c3 has no script | Add it |
cpu is a hardware group, not a selectable profile | hardware: cpu | Pick an exact profile from c3 list --class cpu --all |
VALIDATION_ERROR | A field is malformed: gpu and hardware disagree, empty regions, relative mount, bad time | The message names the field |
| Excluded submission script | Ignore rules exclude script | Fix .c3ignore |
WORKSPACE_TOO_LARGE | MCP inline upload over 20 MiB or 500 files | Use prepare_upload or the CLI |
PROVIDER_NOT_CONFIGURED | Pinned provider does not offer that hardware | c3 list --provider <id> --all |
Capacity and scheduling
| Code | Meaning | What to do |
|---|---|---|
GPU_OUT_OF_STOCK | No stock for the request at submit time | Other class or provider, or pin both and let it wait |
PROVIDER_UNAVAILABLE | Provider disabled or unreachable | Remove the pin or choose another |
PROVISIONING_BLOCKED | Not an error. Job is PENDING, waiting for stock | Wait, or c3 cancel and resubmit elsewhere |
PROVIDER_CAPACITY_UNAVAILABLE | Waited max_wait_minutes without stock | Resubmit with other hardware. Reserve refunded |
CAPACITY_POOL_DISABLED | Selected pool turned off by C3 | Resubmit with other hardware. Reserve refunded |
QUEUE_DEADLINE_EXCEEDED | PENDING for six hours | Resubmit later or elsewhere. Reserve refunded |
Runtime and results
| Code | Meaning | What to do |
|---|---|---|
FAILED, exit code shown | Your script exited non-zero | c3 logs <job-id> |
TIMED_OUT | Hit the time limit | Raise time; partial artifacts are still collected |
PREPARATION_ERROR | Setup failed before the script: uv sync, missing uv.lock, image pull, dataset not found | The message says which; fix and resubmit |
DOCKER_IMAGE_NOT_FOUND | The registry has no such image or tag. On ghcr.io a private package looks the same to an anonymous pull | Check docker.image and, on GHCR, the package visibility; the message names the registry |
DOCKER_IMAGE_NOT_PUBLIC | The registry refused an anonymous pull. On ghcr.io this also covers a misspelt owner or package, because GitHub reports both as denied | Make the image public, or fix the path. Private images are not supported |
DOCKER_IMAGE_PULL_FAILED | Any other pull failure, including a ghcr.io rate limit | Retry; the message names the registry |
DOCKER_HUB_RATE_LIMITED | Docker Hub throttled the pull | Retry later |
| Accelerator mismatch | requires_accelerator does not match the machine | Fix hardware or the flag |
UPLOAD_ERROR | Script succeeded, results could not be saved | Contact support with the report code |
MACHINE_LOST | Provider machine disappeared mid-job | Resubmit; quote the report code if it recurs |
Rate limits
| Code | Meaning | What to do |
|---|---|---|
429 RATE_LIMITED | More than 120 MCP tool calls in a minute | Slow down; retry after Retry-After |
VERIFICATION_EMAIL_RATE_LIMITED | Too many resend requests | Wait a few minutes |