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

# Error Codes

> Structured error codes returned by Steerholm.

Steerholm returns structured JSON-RPC errors with codes outside the reserved JSON-RPC range.

## Error codes

| Code | Name | Meaning |
| - | - | - |
| `-31001` | `AUTHORIZATION_DENIED` | The operation violates the user's security policy |
| `-31002` | `SERVER_UNAVAILABLE` | The target MCP server is not reachable |

## Response format

Errors include an `error_type` field in the `data` payload:

```json theme={null}
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -31001,
    "message": "Tool 'git_commit' on server 'git' is not allowed.",
    "data": {
      "error_type": "AUTHORIZATION_DENIED"
    }
  }
}
```

## Behavior

### AUTHORIZATION\_DENIED

Returned when:

* The agent calls a tool not in its policy
* The agent calls a tool with arguments that violate an argument policy
* The agent calls a tool that doesn't exist on any server it has access to

The agent **must not retry** the same operation — the denial is authoritative.

### SERVER\_UNAVAILABLE

Returned when the target MCP server process is not running or not reachable.

The agent **may retry** — the server might become available later.
