JSON RPC Error Codes Improvement Proposal - whilei/ethereumproject-wiki GitHub Wiki
name: JSON RPC Error Codes Improvement Proposal
category:
To help developers add proper error handling in the dapp side, we need to implement custom error codes for the returned JSON RPC errors.
JSON RPC Standard errors
| Code |
Possible Return message |
Description |
| -32700 |
Parse error |
Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text. |
| -32600 |
Invalid Request |
The JSON sent is not a valid Request object. |
| -32601 |
Method not found |
The method does not exist / is not available. |
| -32602 |
Invalid params |
Invalid method parameter(s). |
| -32603 |
Internal error |
Internal JSON-RPC error. |
| -32000 to -32099 |
Server error. Reserved for implementation-defined server-errors. |
|
Custom error codes:
| Code |
Possible Return message |
Description |
| 1 |
Unauthorized |
Should be used when some action is not authorized, e.g. sending from a locked account. |
| 2 |
Action not allowed |
Should be used when some action is not allowed, e.g. preventing an action, while another depending action is processing on, like sending again when a confirmation popup is shown to the user (?). |
| 3 |
Execution error |
Will contain a subset of custom errors in the data field. See below. |
Custom error fields
Custom error 3 can contain custom error(s) to further explain what went wrong.
They will be contained in the data field of the RPC error message as follows:
{
code: 3,
message: 'Execution error',
data: [{
code: 102,
message: 'Innsufficient gas',
reason: 'GAS'
},
{
code: 103,
message: 'Gas limit exceeded',
reason: 'GAS'
}]
}
| Code |
Reson values |
Possible Return message |
Description |
| 100 |
? |
X doesn't exist |
Should be used when something which should be there is not found. (Doesn't apply for not found transactions or blocks. They return a success with value null) |
| 101 |
ETHER ? |
Requires X |
Should be used for actions which require somethin else, e.g. gas or a value. |
| 102 |
GAS, ETHER |
X to low |
Should be used when a to low value of something was given, e.g. an to low gas amount. |
| 103 |
GAS |
X limit exceeded |
Should be used when a limit is exceeded, e.g. for the gas limit in a block. |
| 104 |
CODE ? |
Rejected |
Should be used when an action was rejected, e.g. because of its content (to long contract code, containing wrong characters ?, should differ from -32602 - Invalid params). |
Possible future error codes?
| Code |
Possible Return message |
Description |
| 105 |
Timeout |
Should be used when an action timedout. |
| 106 |
Conflict |
Should be used when an action conflicts with another (ongoing?) action. |