> ## Documentation Index
> Fetch the complete documentation index at: https://eomer.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Errors

> Every error response carries the same envelope: a human-readable detail plus a machine-readable code, a retry hint and the request id.

All non-2xx responses share one JSON envelope:

```json theme={null}
{
  "detail": "Unsupported file type '.txt'. Allowed: ['.csv', '.parquet', '.xls', '.xlsx']",
  "error_code": "validation_error",
  "retryable": false,
  "request_id": "6f1c2a9e-…"
}
```

| Field        | Type             | Meaning                                                                                                                                                                                                                                  |
| ------------ | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `detail`     | string or object | Human-readable explanation. For structured errors it is an object with its own `error_code`, `detail`, optional `suggestion`, `retryable` and `retry_after_seconds`. Its shape is stable — clients that only read `detail` keep working. |
| `error_code` | string           | Machine-readable code (below). Mirrors `detail.error_code` when present.                                                                                                                                                                 |
| `retryable`  | boolean          | `true` when the same request may succeed later (rate limits, temporary overload, timeouts).                                                                                                                                              |
| `request_id` | string           | Echoes the `X-Request-ID` response header. Quote it when contacting support.                                                                                                                                                             |

Validation failures on request parameters (HTTP 422) put the standard list of
field errors in `detail` and use `error_code: validation_error`.

## Error codes

| `error_code`                  | HTTP               | When                                                                                    |
| ----------------------------- | ------------------ | --------------------------------------------------------------------------------------- |
| `validation_error`            | 400, 413, 415, 422 | Bad input: file type, schema, form values, JSON options, or a request over an input cap |
| `dataset_too_large`           | 413                | Row or column count over the deployment's limit — `detail.suggestion` says what to do   |
| `file_too_large`              | 413                | Upload over the byte limit                                                              |
| `invalid_preset`              | 400                | Unknown model tier                                                                      |
| `auth_failed`                 | 401, 403           | Missing, invalid or insufficient API key                                                |
| `job_not_found`               | 404                | No such job for this key                                                                |
| `job_not_completed`           | 409                | Download requested before the job finished                                              |
| `rate_limited`                | 429                | Too many requests — honour `Retry-After`                                                |
| `server_overloaded`           | 503                | Job queue full — retry with backoff                                                     |
| `compute_unavailable`         | 503                | No compute worker reachable — retry later                                               |
| `tabular_runtime_unavailable` | 503                | Classification/regression is not enabled on this deployment                             |
| `fine_tune_disabled`          | 503                | Fine-tuning is not enabled on this deployment                                           |
| `timeout`                     | 504                | The job exceeded its time budget                                                        |
| `internal_error`              | 500                | Unexpected failure; the `request_id` identifies it in our logs                          |

Failed jobs carry the same code on `GET /jobs/{job_id}` in the `error_code`
field next to the human-readable `error`.
