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

# Error codes

> The complete AWP error registry.

| Code | Name                          | Area     | Retryable | Meaning                                                                                                                                   |
| ---- | ----------------------------- | -------- | --------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| 1001 | AWP\_VERSION\_UNSUPPORTED     | protocol | no        | No mutually supported protocol version                                                                                                    |
| 1002 | AWP\_MALFORMED                | protocol | no        | Message violates envelope or schema                                                                                                       |
| 2001 | AWP\_EMBODIMENT\_UNAVAILABLE  | session  | yes       | Embodiment bound elsewhere or offline                                                                                                     |
| 2002 | AWP\_TIME\_MODEL\_UNSUPPORTED | session  | no        | Requested mode not offered                                                                                                                |
| 2003 | AWP\_SESSION\_EXPIRED         | session  | no        | Token invalid or reconnect window passed                                                                                                  |
| 2004 | AWP\_SESSION\_EXISTS          | session  | no        | This control connection already carries a session (AWP-CTL-007)                                                                           |
| 2005 | AWP\_SESSION\_UNKNOWN         | session  | no        | `session.resume` for a session the world no longer holds (e.g. world restarted; AWP-SES-008)                                              |
| 2006 | AWP\_INTEGER\_RANGE           | protocol | no        | A 64-bit field exceeded 2^53−1 in JSON (AWP-CTL-009)                                                                                      |
| 2007 | AWP\_CHANNEL\_UNKNOWN         | session  | no        | `obs.subscribe` or `obs.unsubscribe` named a channel the manifest does not declare (AWP-NEG-004)                                          |
| 3001 | AWP\_PARAMS\_INVALID          | action   | no        | Params fail the type's schema                                                                                                             |
| 3002 | AWP\_BUSY                     | action   | yes       | `reject` preemption policy and an action is running                                                                                       |
| 3003 | AWP\_QUEUE\_FULL              | action   | yes       | `queue` policy depth exceeded                                                                                                             |
| 3004 | AWP\_ACTION\_ID\_CONFLICT     | action   | no        | Same `action_id` resubmitted with different content (AWP-ACT-001)                                                                         |
| 3005 | AWP\_ESTOP\_ACTIVE            | action   | yes       | Admission suspended while e-stop is engaged (AWP-EVT-002)                                                                                 |
| 3006 | AWP\_TICK\_NOT\_AUTHORIZED    | action   | no        | `world.tick` from a session without tick authority (AWP-TIM-012)                                                                          |
| 3007 | AWP\_STALE\_INTENT            | action   | yes       | Basis older than `max_basis_age_ms`, `valid_until_ns` already passed, or a required `basis_ts_mono_ns` missing (AWP-SAF-013, AWP-ROB-005) |
| 3008 | AWP\_ACTION\_UNKNOWN          | action   | no        | `action.cancel` or a status pull named an `action_id` the world does not hold (AWP-LIF-010)                                               |
| 3009 | AWP\_TICK\_MISMATCH           | action   | no        | `expected_tick` differs from the current tick; `data.tick` carries the current tick and nothing advanced (AWP-TIM-011)                    |
| 4001 | AWP\_FORBIDDEN                | safety   | no        | Not granted for this session                                                                                                              |
| 4002 | AWP\_ENVELOPE\_EXCEEDED       | safety   | varies    | Limit exceeded; `retry_after_ms` present for rate limits                                                                                  |
| 4003 | AWP\_APPROVAL\_DENIED         | safety   | no        | Approver denied the action                                                                                                                |
| 4004 | AWP\_APPROVAL\_TIMEOUT        | safety   | yes       | No approver response in time                                                                                                              |

Reserved JSON-RPC codes (−32700…−32600) retain their standard meanings.
