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

# Error codes

> Public error codes from the miniapp tool, Host Connector, the Agent API, and page APIs.

<div className="code-docs">
  <h2 id="tool">
    miniapp tool
  </h2>

  | code | Meaning and handling |
  | - | - |
  | `BUSY` | `busyReason` `capacity_busy`: all three service slots are taken, so stop one and retry; `operation_busy`: another operation on the same plugin is in progress, so retry once later |
  | `PREPARATION_FAILED` | Preparation failed, with `diagnostic.stage`, `reasonCode`, `recovery`, and `hint`; follow `recovery` |
  | `PLUGIN_ALREADY_EXISTS` | A plugin with the same name exists; with `OFFICIAL_PLUGIN_READ_ONLY` it matches an official plugin and is not retryable |
  | `OPEN_UNAVAILABLE` | The current host provides no surface for opening pages |
  | `INTERNAL_ERROR` | Internal host error with a `diagnosticId` and possibly `lastGoodAvailable`; don't retry as is |
  | `READINESS_TIMEOUT` | Startup failure reason: the process didn't become ready in time; see [Port authentication](/docs/miniapp/authors/node-runtime#auth) |
  | `MINIAPP_AGENT_ACCESS_INVALID` | `agentAccess` has an invalid value at publish time |

  <h2 id="connector">
    Host Connector
  </h2>

  | code | Meaning |
  | - | - |
  | `TOOL_REF_STALE` | The tool reference expired; call `list()` again |
  | `SERVICE_RESTARTED` | The service restarted; call `list()` again |
  | `REQUEST_CANCELLED` | The request was cancelled |
  | `CONNECTOR_TIMEOUT` | The request timed out |
  | `INVALID_ARGUMENTS` | Arguments don't match the schema; see `diagnostic.issues` |
  | `CONNECTOR_PROVIDER_ERROR` | The third-party service returned an error |
  | `CONNECTOR_UNAVAILABLE` | The connector is unavailable |
  | `CONNECTOR_OUTCOME_UNKNOWN` | Sent, but the outcome is unknown; reconcile business state first |

  <h2 id="agent">
    Agent API
  </h2>

  | code | Meaning |
  | - | - |
  | `NOT_PERMITTED` | The manifest doesn't declare `agentAccess` |
  | `BUSY` | `session_busy`: the session already has a turn running; `queue_full`: the queue is full. Retryable |
  | `SESSION_NOT_FOUND` | The session doesn't exist or doesn't belong to this Mini App |
  | `INVALID_ARGUMENTS` | Invalid arguments, such as an unavailable model, or passing `agent` when continuing a session |
  | `AGENT_UNAVAILABLE` | Nothing was started, for example because the calling process was replaced or too many requests are in flight |
  | `REQUEST_CANCELLED` | Cancelled before it was sent |
  | `AGENT_OUTCOME_UNKNOWN` | The turn may have run; reconcile first and don't retry automatically |
  | `REQUEST_NOT_FOUND` | The approval or questionnaire doesn't exist or was already handled |

  Some page-side errors are lowercase, such as `not_permitted` and `invalid_request`.

  <h2 id="client">
    Page APIs
  </h2>

  | API | Errors |
  | - | - |
  | `message.append` | `user_cancelled`, `invalid_request`, `text_too_large`, `not_allowed`, `target_unavailable`, `result_unknown` |
  | `miniapp.window` | `inline_mode`, `not_permitted`, `busy`, `result_unknown`, `invalid_request` |
</div>
