> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.galleon8.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.galleon8.com/_mcp/server.

# Solana Error Codes

> Understand HTTP and Solana RPC errors for Solana API requests.

Solana API requests can fail at two levels:

* **HTTP errors** happen before or while the request reaches the endpoint.
* **Solana RPC errors** come from the JSON-RPC request body or the backing Solana node.

Successful JSON-RPC responses include a `result` value. Failed JSON-RPC responses include an `error` object with a `code`, `message`, and optional `data` field.

## HTTP Error Codes

| Code  | Message                | Meaning                                                                                   | What to check                                                                        |
| ----- | ---------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| `400` | Bad Request            | The request is malformed, uses an invalid body, or cannot be interpreted by the endpoint. | Confirm the request uses `POST`, has valid JSON, and follows the JSON-RPC 2.0 shape. |
| `401` | Unauthorized           | Authentication failed or the request is missing valid credentials.                        | Check that the endpoint URL includes the correct project API key.                    |
| `403` | Forbidden              | The request is not allowed for the endpoint, project, origin, or enabled method set.      | Confirm project access, allowed origins, billing state, and method availability.     |
| `404` | Not Found              | The endpoint URL or requested route does not exist.                                       | Check the endpoint URL, network path, and copied project endpoint.                   |
| `405` | Method Not Allowed     | The endpoint does not accept the HTTP method used by the request.                         | Use `POST` for JSON-RPC requests.                                                    |
| `413` | Content Too Large      | The request body is larger than the endpoint accepts.                                     | Reduce payload size, batch size, account query scope, or block range.                |
| `415` | Unsupported Media Type | The request uses an unsupported `Content-Type`.                                           | Send `Content-Type: application/json`.                                               |
| `429` | Too Many Requests      | The request rate is higher than the available rate limit.                                 | Slow down requests, add retries with backoff, or review your service plan limits.    |
| `500` | Internal Server Error  | The endpoint or upstream node failed while processing the request.                        | Retry the request and check whether the issue is method-specific or temporary.       |
| `503` | Service Unavailable    | The endpoint or upstream service is temporarily unavailable.                              | Retry with backoff and monitor service health before increasing traffic.             |

## HTTP Error Code Example

This response shows an HTTP-level rate limit error:

```json
{
  "jsonrpc": "2.0",
  "error": {
    "code": 429,
    "message": "The request rate is higher than the available rate limit."
  },
  "id": 1
}
```

## Solana RPC Error Codes

| Code     | Message                                               | Meaning                                                                                                                                                 |
| -------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-32700` | Parse error                                           | Invalid JSON was received and could not be parsed.                                                                                                      |
| `-32600` | Invalid request                                       | The JSON-RPC request is malformed or missing required fields.                                                                                           |
| `-32601` | Method not found                                      | The method name is misspelled or unavailable on the endpoint.                                                                                           |
| `-32602` | Invalid params                                        | The method parameters are missing, malformed, or incompatible with the method schema.                                                                   |
| `-32603` | Internal JSON-RPC error                               | The Solana node encountered an internal error while processing the payload.                                                                             |
| `-32002` | Transaction simulation failed / preflight check error | The transaction being submitted failed simulation or preflight validation. Check the transaction parameters, signatures, recent blockhash, and message. |
| `-32002` | Blockhash not found                                   | The submitted blockhash is not known by the validator. Fetch a new recent blockhash or retry after a short delay.                                       |
| `-32003` | Transaction signature verification failure            | One or more transaction signatures are invalid. Verify the signing keys, public keys, and encoded transaction.                                          |
| `-32004` | Block not available for slot                          | The requested slot cannot be retrieved, often because the block is unavailable or the request timed out. Retry with backoff.                            |
| `-32005` | Node is unhealthy / behind by slots                   | The node is behind the cluster tip or temporarily unhealthy. Retry with backoff before increasing traffic.                                              |
| `-32007` | Slot was skipped or missing due to snapshot jump      | The requested slot does not contain a block. Verify the slot before retrying.                                                                           |
| `-32009` | Slot was skipped or missing in long-term storage      | The requested slot is missing from available long-term storage. Check the slot and endpoint retention behavior.                                         |
| `-32010` | Key excluded from account secondary indexes           | The requested key is not available through the account index required by the method. Adjust the query or method parameters.                             |
| `-32013` | Transaction signature length mismatch                 | The transaction signature length is invalid. Re-encode or rebuild the transaction before retrying.                                                      |
| `-32014` | Block status not yet available                        | The requested block status is pending or not yet synced. Retry later.                                                                                   |
| `-32015` | Transaction version not supported                     | The transaction version is not supported by the request or client. Set `maxSupportedTransactionVersion` when applicable or update the client.           |
| `-32016` | Minimum context slot not reached                      | The required `minContextSlot` is higher than the node has reached. Lower the minimum context slot or retry later.                                       |

## Solana RPC Error Code Example

This response shows an invalid parameter error:

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32602,
    "message": "Invalid param: Invalid"
  }
}
```

## Error Monitoring

Use W3API platform request monitoring and statistics to compare successful and failed requests by project, chain, method, and time range. When investigating errors, capture the endpoint, request timestamp, method name, request body, HTTP status, and JSON-RPC `error` object so you can identify whether the issue is caused by request shape, rate limits, endpoint access, or upstream Solana execution.