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

# Errors

> Every error is an application/problem+json body with a stable code and a human-readable detail.

Control-plane request failures use `application/problem+json`. The generated error schema owns the exact shape. For example:

```json theme={null}
{
  "code": "simulation_stopped",
  "detail": "The Simulation is stopped.",
  "validation": null
}
```

The nullable `validation` field carries safe specification diagnostics when a build request is rejected.

Use the stable `code` in programs. Show `detail` to people. The endpoint examples show the detail for each stated failure. IDs, quota counts, and other request values can change.

## Resource errors

A successful HTTP read can return a Simulator or World whose build has failed. Its `error` field describes that resource outcome, separately from an HTTP request failure. Use the generated resource schema for the supported codes and fields. Simulator diagnostics can include a bounded `reason`, a plain-text `agent_message`, and structured `validation` issues. A `specification_validation_failed` result needs corrected input before another build. A canceled Simulator uses status `canceled` and error code `build_canceled`.

## Codes

| Status | `code`                                                           | When                                                                                                                                                |
| ------ | ---------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `400`  | `bad_request`                                                    | The `cursor` or `status` filter is invalid, a JSON body is malformed, or a data-plane body could not be read.                                       |
| `400`  | `simulator_unknown`                                              | A `simulator_id`, `parent_id`, `simulators[]` entry, or list filter does not resolve in this workspace or the catalog.                              |
| `401`  | `auth_invalid`                                                   | The API key is missing or invalid.                                                                                                                  |
| `403`  | `auth_forbidden`                                                 | The resource belongs to another workspace, the request deletes a catalog Simulator, or the request cancels a build that another workspace owns.     |
| `400`  | `invalid_read_only_header`                                       | Data plane only: `Continuous-Read-Only` must contain one `true` or `false` value.                                                                   |
| `403`  | `simulation_read_only`                                           | Data plane only: the operation can write, or the Simulator artifact cannot prove read-only support.                                                 |
| `404`  | `simulation_not_found`, `simulator_not_found`, `world_not_found` | The ID in the path is unknown. On the data plane, `simulation_not_found` also answers any path under `_sim`.                                        |
| `404`  | `not_found`                                                      | The route is unknown.                                                                                                                               |
| `404`  | `clock_advance_not_found`                                        | The requested clock operation does not exist for this resource.                                                                                     |
| `405`  | `method_not_allowed`                                             | The route exists but not for this method.                                                                                                           |
| `408`  | `request_timeout`                                                | Reading the request body timed out. Any operation with a body can answer it.                                                                        |
| `409`  | `simulator_not_ready`                                            | Create a Simulation, build a World, or start an incremental build from a Simulator that is not `ready`.                                             |
| `409`  | `simulation_stopped`                                             | List steps, fork, or send a data-plane request to a stopped Simulation.                                                                             |
| `409`  | `simulation_world_owned`                                         | Stop, start, advance, or delete a World member directly.                                                                                            |
| `409`  | `simulation_platform_owned`                                      | Change a Simulation that the platform has in use.                                                                                                   |
| `409`  | `simulator_in_use`                                               | Delete a Simulator that has dependent Worlds, Simulations, or child Simulators.                                                                     |
| `409`  | `world_conflict`                                                 | Start or stop a World in a state that does not admit it.                                                                                            |
| `409`  | `clock_conflict`                                                 | A clock operation or conflicting lifecycle operation is already active, or an idempotency key is reused with a different target.                    |
| `413`  | `payload_too_large`                                              | The request exceeds a [transport limit](/api-reference/quotas#size-limits).                                                                         |
| `415`  | `unsupported_media_type`                                         | A JSON operation received a non-JSON body, or `POST /v1/simulators` received a body that is not `multipart/form-data`.                              |
| `422`  | `validation`                                                     | The request violates the schema: for example `at_step` is not a recorded step, the multipart part set is invalid, or `ttl_seconds` is out of range. |
| `429`  | `simulation_quota_exceeded`                                      | The workspace is at its active Simulation limit.                                                                                                    |
| `429`  | `build_rate_exceeded`                                            | The workspace has used its Simulator builds for the current UTC day.                                                                                |
| `429`  | `simulation_capacity`                                            | Continuous has no free Simulation capacity. Retry after a short delay.                                                                              |
| `500`  | `internal`                                                       | The server failed unexpectedly.                                                                                                                     |
| `500`  | `simulation_template_missing`                                    | The Simulation runtime template is unavailable.                                                                                                     |
| `503`  | `simulation_provider_unavailable`                                | The Simulation runtime provider is unavailable. Retry after a short delay.                                                                          |
| `503`  | `internal_unavailable`                                           | A dependency of the API is unavailable. Retry the request.                                                                                          |
| `503`  | `auth_provider_unavailable`                                      | The authentication provider is unavailable. Retry the request.                                                                                      |
| `503`  | `simulation_unreachable`                                         | Data plane only: the runtime is waking, cannot be reached, or returned an unusable error.                                                           |
| `504`  | `simulation_timeout`                                             | The Simulation runtime did not start in time. Retry the request.                                                                                    |

The endpoint pages show examples for `internal_unavailable` and `auth_provider_unavailable`; either can appear on any operation.

`Retry-After` gives a delay in seconds. It accompanies `build_rate_exceeded` until the UTC day ends, build storage failures and operation timeouts on `POST /v1/simulators`, and retryable data-plane `simulation_unreachable` responses. Other `internal_unavailable` and authentication failures can omit it.

Simulator and World requests above their concurrent build limits return `202` with status `pending`. They start when a slot is free in their separate queues.

See [Quotas and limits](/api-reference/quotas) for the `429` and `413` limits.
