> For the complete documentation index, see [llms.txt](https://raiden-4.gitbook.io/raiden.wtf.docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://raiden-4.gitbook.io/raiden.wtf.docs/bolt-low-latency/http-submission/error-codes.md).

# Error Codes

Error codes returned by Raiden Bolt API

## JSON-RPC Errors (sendTransaction)

| Code     | Name                | Description                                          |
| -------- | ------------------- | ---------------------------------------------------- |
| `-32600` | Invalid Request     | Malformed JSON-RPC request                           |
| `-32601` | Method Not Found    | Unknown method (only `sendTransaction` is supported) |
| `-32602` | Invalid Params      | Missing or invalid transaction data, or missing tip  |
| `-32000` | Unauthorized        | Invalid or missing API key                           |
| `-32005` | Rate Limit Exceeded | You've exceeded your account's TPS limit             |
| `-32603` | Internal Error      | Server-side error — retry the request                |

## HTTP Errors (sendRawTransaction)

| HTTP Status | Meaning                                            |
| ----------- | -------------------------------------------------- |
| `400`       | Invalid or empty transaction bytes, or missing tip |
| `401`       | Invalid or missing API key                         |
| `429`       | Rate limit exceeded                                |
| `500`       | Internal error — retry the request                 |

## QUIC Connection Errors

| Error Code | Meaning                                      |
| ---------- | -------------------------------------------- |
| `0`        | Normal close                                 |
| `1`        | Unknown certificate — API key not recognized |
| `3`        | QUIC access not enabled on account           |
| `4`        | Account suspended or banned                  |

{% hint style="info" %}
QUIC is fire-and-forget — oversized payloads (>4096 bytes) and empty streams are silently dropped rather than returning an error. A legacy or v0 transaction over 1232 bytes is also dropped: only Transaction v1 can exceed that size.
{% endhint %}
