Error reference

Custom error codes explained

Blast supports two classes of APIs:

  • JSON-RPC API

  • Elrond REST API

Each of them has its own error response format.

Additionally, the JSON-RPC API can be queried via WebSockets, while the Elrond API does not expose this kind of endpoint.

When queried via HTTP both APIs return a status code and an API-specific JSON body.

The JSON-RPC API returns the same Error object on both HTTP and WebSocket endpoints.

HTTP Status Codes

Code

API

Description

400

JSON-RPC

Bad Request - Either invalid JSON-RPC body or requesting resources not available (i.e. method not on the whitelist).

401

All

Unauthorized - Request is not authenticated (the project ID is not valid or the network requested is not included in this project).

403

All

Forbidden - Exceeded capacity of API calls included in the current plan.

429

All

Too Many Requests - Reached limit of concurrent API calls allowed per second.

500

All

Internal issue while processing the request.

JSON-RPC Error Codes

Code

Message

Description

HTTP Status Code

-32700

Parse error

Invalid JSON.

400

-32603

Internal error

Internal issue.

500

-32602

Invalid params

Invalid method parameters.

400

-32601

Method not found

The method does not exist / is not available.

400

-32600

Invalid request

The JSON sent is not a valid Request object.

In case of a batch request, if any of its sub-requests is invalid then the entire batch is invalidated.

400

-32099

Authentication failed

The request is not authenticated.

401

-32098

Capacity exceeded

Exceeded capacity of API calls.

403

-32097

Rate limit reached

Reached limit of concurrent API calls allowed per second.

429

Custom Elrond Error Codes

Code

Error

HTTP Status Code

“unauthorized“

“authentication failed“

401

“forbidden“

“capacity exceeded“

403

“rate_limited“

“rate limit reached“

429

Example Error Responses

Batch request invalidated (JSON-RPC API)

[
  {
    "jsonrpc": "2.0",
    "id": 2,
    "error": {
      "code": -32600,
      "message": "Invalid Request",
      "data": {
        "method": "'eth_signTransaction' is not allowed"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 1,
    "error": {
      "code": -32600,
      "message": "Invalid Request",
      "data": {
        "message": "Cancelled due to validation errors in bulk request"
      }
    }
  },
  {
    "jsonrpc": "2.0",
    "id": 3,
    "error": {
      "code": -32600,
      "message": "Invalid Request",
      "data": {
        "message": "Cancelled due to validation errors in bulk request"
      }
    }
  }
]

Authentication failed

JSON-RPC API

{
  "jsonrpc": "2.0",
  "id": null,
  "error": {
    "code": -32099,
    "message": "Authentication failed"
  }
}

Elrond API

{
  "data": null,
  "error": "authentication failed",
  "code": "unauthorized"
}

Capacity exceeded

JSON-RPC API

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32098,
    "message": "Capacity exceeded"
  }
}

Elrond API

{
  "data": null,
  "error": "capacity exceeded",
  "code": "forbidden"
}

Rate limit

JSON-RPC API

{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32097,
    "message": "Rate limit reached"
  }
}

Elrond API

{
  "data": null,
  "error": "rate limit reached",
  "code": "rate_limited"
}

Last updated