Skip to content

Gateway errors

Errors the RPC, Subgraphs and Substreams gateways return before or while serving a request.

Each error below is identified by the code in the error response. The response's docsUrl links to the matching entry on this page.

chain_id_invalid

Invalid chain ID · HTTP 400 Bad Request

The chain in the request path is not a canonical chain identifier, for example because it has leading zeros or is not a decimal number.

What to do: Use the decimal chain ID without leading zeros, such as /v1/evm/1 for Ethereum mainnet.

compressed_body_invalid

Invalid compressed body · HTTP 400 Bad Request

The request body could not be decompressed with the encoding named in its Content-Encoding header.

What to do: Check that the body is compressed with the encoding the header names, or send it uncompressed.

content_encoding_unsupported

Unsupported content encoding · HTTP 415 Unsupported Media Type

The request uses a Content-Encoding GraphOps does not accept. GraphOps accepts gzip, deflate, br, zstd and identity, with at most four layers.

What to do: Send the body uncompressed, or compress it with one of the supported encodings.

deployment_not_found

Subgraph deployment not found · HTTP 404 Not Found

No Subgraph deployment matches the deployment ID, Subgraph ID or Endpoint Alias in the request path.

What to do: Check the identifier, and for an Endpoint Alias check that it belongs to the organization that owns your API key.

endpoint_not_found

Endpoint not found · HTTP 404 Not Found

No GraphOps endpoint matches the request path on this host.

What to do: Check the request path against the API reference for the service you are calling.

gateway_context_missing

Request context missing · HTTP 500 Internal Server Error

GraphOps accepted the request but could not attach the account details it needs to serve and bill it. This is a GraphOps fault, not a problem with your request.

What to do: Retry the request once. If the error continues, contact support with the time of the request.

gateway_misconfigured

Gateway configuration error · HTTP 500 Internal Server Error

GraphOps could not route the request because of a configuration problem on our side. This is a GraphOps fault, not a problem with your request.

What to do: Retry the request once. If the error continues, contact support with the time of the request.

gateway_unavailable

Gateway temporarily unavailable · HTTP 503 Service Unavailable

The GraphOps gateway is starting up and is not ready to serve requests yet.

What to do: Retry the request after a short wait.

graphql_request_invalid

Invalid GraphQL request · HTTP 400 Bad Request

The request body is not a JSON object with a non-empty string query field.

What to do: Send a JSON object with a query string, and optional variables and operationName fields.

jsonrpc_parse_error

Invalid JSON-RPC JSON · HTTP 400 Bad Request

The request body is not valid JSON, so GraphOps could not read it as a JSON-RPC request.

What to do: Send a JSON-RPC 2.0 request object or batch array encoded as valid JSON.

jsonrpc_request_id_duplicate

Duplicate JSON-RPC request ID · HTTP 400 Bad Request

Two requests in the batch use the same id, or the id matches a request still pending on this WebSocket connection.

What to do: Give every request in a batch or open connection a unique id.

jsonrpc_request_invalid

Invalid JSON-RPC request · HTTP 400 Bad Request

The body is valid JSON but is not a JSON-RPC request: it must be an object or an array of objects, and each object needs a string method.

What to do: Send a JSON-RPC 2.0 request object, or a batch array of request objects, each with a method string.

network_not_found

Network not found · HTTP 404 Not Found

GraphOps does not serve the network named in the request path.

What to do: Check the network name against the list of supported networks.

request_body_unreadable

Unreadable request body · HTTP 400 Bad Request

GraphOps could not read the request body, usually because the connection closed during the upload.

What to do: Retry the request. If it keeps failing, check that your client sends the complete body.

request_payload_too_large

Request body too large · HTTP 413 Content Too Large

The request body, or the body after decompression, is larger than GraphOps accepts for this endpoint.

What to do: Send a smaller request, for example by splitting a large batch into several requests.

service_description_unavailable

Service description temporarily unavailable · HTTP 503 Service Unavailable

GraphOps could not load the service description for this endpoint and has no recent copy to serve.

What to do: Retry the request after a short wait.

stream_access_blocked

Streaming blocked for organization · HTTP 403 Forbidden

GraphOps blocked streaming for your organization, so new streams are refused and open streams are ended.

What to do: Contact GraphOps support to find out why and to restore access.

stream_limit_exceeded

Stream limit exceeded · HTTP 429 Too Many Requests

Your organization has more streams open at once than its current limit allows, so GraphOps ended this stream.

What to do: Close streams you no longer need, then reconnect. If you need more concurrent streams, contact GraphOps support.

stream_session_key_mismatch

API key does not match stream · HTTP 403 Forbidden

A request to continue a stream used a different API key from the one that started it.

What to do: Use the same API key for the whole stream. If you rotated the key, start a new stream with the new key.

stream_session_unavailable

Stream temporarily unavailable · HTTP 503 Service Unavailable

GraphOps could not start or keep your stream running because a service it depends on was briefly unavailable.

What to do: Retry the stream with backoff. If the error continues, check GraphOps status or contact support.

subgraph_identifier_invalid

Invalid Subgraph identifier · HTTP 400 Bad Request

The deployment ID, Subgraph ID or Endpoint Alias in the request path is not well formed.

What to do: Check the identifier. Deployment IDs are CIDs starting with Qm or bafy, and Endpoint Aliases use lowercase letters, digits and hyphens.

subgraph_resolution_failed

Subgraph lookup failed · HTTP 502 Bad Gateway

GraphOps could not look up which deployment serves this request because the lookup service failed or sent an unusable response.

What to do: Retry the request with backoff. If the error continues, contact support with the time of the request.

subgraph_resolution_unavailable

Subgraph lookup temporarily unavailable · HTTP 503 Service Unavailable

GraphOps could not look up which deployment serves this request because a service it depends on was briefly unavailable.

What to do: Retry the request with backoff. If the error continues, check GraphOps status or contact support.

upstream_request_failed

Upstream request failed · HTTP 502 Bad Gateway

GraphOps could not reach the network or indexing service that serves this request, or the connection failed before a response arrived.

What to do: Retry the request with backoff. If the error continues, check GraphOps status or contact support.

upstream_response_malformed

Malformed upstream response · HTTP 502 Bad Gateway

The network or indexing service that serves this request sent a response GraphOps cannot forward.

What to do: Retry the request. If the error continues, contact support with the time of the request.

upstream_response_too_large

Upstream response too large · HTTP 502 Bad Gateway

The response to this request is larger than GraphOps forwards for this endpoint.

What to do: Request less data per call, for example by narrowing a block range or paginating a query.

upstream_timeout

Upstream timed out · HTTP 504 Gateway Timeout

The network or indexing service that serves this request did not respond in time.

What to do: Retry the request with backoff. For large queries, narrow the range or reduce the work per request.

websocket_upgrade_invalid

Invalid WebSocket handshake · HTTP 400 Bad Request

The request to open a WebSocket connection is missing or has invalid handshake headers, or the connection cannot be upgraded.

What to do: Connect with a WebSocket client, or send JSON-RPC over HTTP with POST instead.

Last updated