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 |
-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 |
-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 |
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 those errors in the source code 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 🚀