# ENGINE_BUSY

The solver was busy with other requests for longer than a call may wait. HTTP 503. Nothing was charged; retry after retry_after_ms.

The service is answering other requests and this one waited as long as a call
may wait for the solver. Nothing about the request is wrong, and nothing was
charged: a check is charged only once it has the solver.

## The envelope

```json
{"ok": false,
 "error": {"code": "ENGINE_BUSY",
           "message": "the solver is busy with other requests; retry this call in 10000 ms",
           "docs": "https://docs.agents.jaxon.ai/errors/engine-busy.md",
           "retry_after_ms": 10000},
 "versions": {"...": "..."}}
```

The REST door also sends `Retry-After`, in whole seconds.

## What to do

1. **Wait `retry_after_ms`, then send the same call again.** Do not change the
   source or the claims: they were never looked at.
2. **Back off if it happens twice.** Double the wait each time rather than
   retrying in a tight loop, which only lengthens the queue you are waiting in.
3. **If it persists for minutes,** report it with the `versions` block.

See also: [`BUDGET_EXCEEDED`](budget-exceeded.md), [Error codes](../reference/errors.md).
