To facilitate a clear understanding of error codes, this document provides a list of possible error codes, along with additional information about how to resolve them.
HTTP Error Codes
Let's look at the common HTTP errors you can encounter, what they mean and what you can do to prevent them.
Code | Message | Explanation |
---|---|---|
400 | Bad Request | Incorrect HTTP Request type (e.g. using GET instead of POST) or Invalid Characters |
401 | Unauthorized | This can happen when one or multiple security requirements are not met such as incorrect Token Auth, IP not in the whitelist, invalid JWT, etc. |
403 | Forbidden | Endpoint Disabled (One of the reasons for this could be a past due payment) |
403 | Forbidden - custom trace not found in allowed custom traces | Custom trace code not whitelisted (Submit a ticket here to go through the approval process) |
404 | Not Found | Incorrect URL or Incorrect method |
413 | Content Too Large | Body of the request is too large |
413 | Request Entity Too Large eth_getLogs and eth_newFilter are limited to a 10,000 blocks range | We enforce a limit of 10,000 block ranges when requesting logs and events. Learn more about why we have set the limit and what you can do to work around this here |
429 | Too Many Requests | The requests per second (RPS) of your requests are higher than your plan allows. Learn more about the 429 errors here |
500 | Internal Server Error | Submit a ticket for the support team to take a look at the errors asap |
503 | Service Unavailable | Submit a ticket for the support team to take a look at the errors asap |
HTTP Error Code Example
The code snippet below is an example of Error Code 429.
{
"jsonrpc": "2.0",
"error": {
"code": 429,
"message": "The requests per second (RPS) of your requests are higher than your plan allows."
},
"id": 1
}
EVM RPC Error Codes
Let's look at the common EVM errors you can encounter, what they mean and what you can do to prevent it.
Code | Message | Explanation |
---|---|---|
-32000 | header not found or could not find block XXX | The requested block doesn't exist on the node. Invalid block number or the node you're hitting is not in sync yet. Use a retry mechanism with an incremental timeout |
-32000 | stack limit reached 1024 (1023) | Usually a smart contract error/bug |
-32000 | method handler crashed | Internal error from the blockchain client, which can be a client bug. Submit a ticket so we can double check the nodes |
-32000 | execution timeout | Add the timeout param in your request to override the default client timeout. Read more about this here |
-32000 | nonce too low | The nonce value specified in your transaction is lower than the next valid nonce for the sender account. |
-32000 | filter not found | Filter exceeded timeout; you'll have to recreate the filter once more. Read about it here |
-32001 | Resource Not Found | The requested resource does not exist or is unavailable. |
-32002 | Resource Unavailable | The requested resource is temporarily or permanently unavailable. |
-32003 | Transaction Rejected | The transaction could not be created due to validation failure or insufficient resources. |
-32004 | Method Not Supported | The requested method is not implemented or supported by the server. |
-32005 | Limit Exceeded | The request exceeds the allowed limit or quota. |
-32006 | JSON-RPC Version Not Supported | The specified JSON-RPC version is not supported by the server. |
-32009 | trace requests limited to x/sec | We have limited the debug and trace method to a specific RPS to prevent the nodes from overloading |
-32010 | Transaction cost exceeds current gas limit | Gas limit is set too low |
-32011 | network error | This error occurs when there is a problem with the connection between the client and server, such as a timeout or a dropped connection |
-32015 | VM execution error | Smart contract execution error |
-32600 | Invalid request | JSON request is malformed or missing required fields. Ensure it follows the expected format |
-32601 | method not found | Typically a typo in the method name; check for spelling errors |
-32601 | failed to parse request | Incorrect request body; double check the method params |
-32602 | invalid argument 0: json: cannot unmarshal hex string without 0x prefix into Go struct field CallArgs.to of type common.Address | Incorrect request; the 0x is missing from the address. the hex |
-32602 | eth_getLogs and eth_newFilter are limited to a 10,000 blocks range | Read an in-depth explanation here |
-32603 | Internal JSON-RPC error | This error is typically due to a bad or invalid payload |
-32612 | custom traces are blocked | Submit a request here |
-32613 | custom trace not found in allowed custom traces | Submit a request here |
-32700 | Parse error | Invalid JSON received. The server encountered an error while parsing the JSON text |
3 | execution reverted | The transaction was reverted during execution, likely due to failing conditions, insufficient gas, or a contract error |
The RPC errors defined above are a collection of common errors you can encounter while developing on chains like ETH, BSC, Polygon, etc. These chains run on multiple clients with their own error definitions. You can view the errors mentioned in the node client source here as well:
EVM RPC Error Code Example
The code snippet below is an example of Error Code -32601.
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32601,
"message": "the method eth_randomMethod does not exist/is not available"
}
}
If you're experiencing other error codes, please let us know by submitting a ticket. We're more than happy to assist 🚀