Find the error or symptom you see, then work through its checks in order. If the issue remains after the checks, contact GraphOps support(opens in a new tab) with the details listed under Contact support.
401 Unauthorized
The request is missing a valid API key, the Authorization header is malformed, or the route-token
URL does not include a valid key.
- Confirm the key was created for the organization that owns Subgraphs access and includes Subgraphs.
- For header auth, confirm the header is exactly
Authorization: Bearer <GRAPHOPS_API_KEY>. - For route-token auth, confirm the endpoint ends with
/<GRAPHOPS_API_KEY>. - Confirm the key has not been revoked or rotated.
- Confirm you send a query key, which starts with
gqk_. Subgraphs refuses a service account API key (gsk_) with the codeapi_key_class_not_allowed. - Remove extra quotes, whitespace, or the literal string
Bearerfrom secret-manager values. - Use Authentication to compare header and route-token formats.
403 Forbidden
The key is valid, but GraphOps refuses the request. The response code names the reason.
credits_exhausted: the organization has no credits left. Add credits in Billing to bring the balance above zero. Access is restored automatically. To avoid a repeat, turn on automatic top-ups.api_key_route_not_allowed: confirm the endpoint usesdeploymentCID,subgraphIdoraliasas shown in Authentication.api_key_target_not_allowed: the key's Subgraphs access is limited and no limit matches the identifier in your endpoint. A Deployment CID limit does not allow an Endpoint Alias that serves the same deployment, and a Managed Subgraph limit stops allowing a previous version's Deployment CID after a promotion.api_key_origin_not_allowedorapi_key_origin_required: the key limits Subgraphs to allowed origins. For a browser request, confirm one matches the page's origin exactly, including its scheme and port, such ashttp://localhost:3000. A server, script, orcurlrequest sends no origin, so use a key whose Subgraphs access has no allowed origins there instead.- Confirm the API key belongs to the same organization that owns the Endpoint Alias or Managed Subgraph.
usage_access_paused,organization_disabledorapi_key_disabled: GraphOps support paused the organization or disabled the key. Adding credits does not restore access. Contact GraphOps support(opens in a new tab), or create a new key if only the key is disabled.
404 Not Found
The Deployment CID, Graph Network Subgraph ID, or Endpoint Alias does not resolve for the organization.
- Confirm the endpoint mode:
deploymentCID,subgraphId, oralias. - Confirm the identifier value in the platform UI.
- For Endpoint Aliases, confirm the Endpoint Alias name is correct.
- For Deployment CIDs, confirm the CID identifies a deployed Subgraph.
- For Graph Network Subgraph IDs, confirm the Subgraph exists on The Graph Network.
Subgraph unavailable: no indexer is serving the deployment
The deployment has no active indexer allocations on The Graph Network. Its publication or presence
in the discovery catalog does not guarantee that an indexer can serve queries. The explorer reports
this as Subgraph unavailable; a direct query can return subgraph not found: no allocations
inside a GraphQL errors array even with HTTP status 200.
- Confirm the Deployment CID you want to query, including the current version if you use a Graph Network Subgraph ID or an Endpoint Alias that follows one.
- An Owner or Developer can import it as a Managed Subgraph to start GraphOps managed indexing if its network is supported. If you have another role, ask an Owner or Developer to do this, or choose another deployment with available indexing.
- Once indexing is ready, choose Retry in the explorer. Repeated requests alone do not create indexer coverage.
Subgraph unavailable: indexers report an indexing error
Every indexer serving the deployment has stopped on an indexing error, so The Graph Network does
not answer queries for it. The explorer reports this as Subgraph unavailable and can still
show the deployment's metadata. A direct query can return bad indexers: {…: BadResponse(no attestation: indexing_error)} inside a GraphQL errors array.
- Check the Subgraph's current version. A publisher usually fixes an indexing error by publishing a new deployment, and a Graph Network Subgraph ID or an Endpoint Alias that follows one moves to it.
- Otherwise choose another deployment, or ask the publisher to fix the Subgraph and redeploy it. Retrying the same deployment does not clear the error.
Queries fail or return less data after a new version is published
Your endpoint moved to a new version that is not fully indexed yet. A subgraphId endpoint, or an
Endpoint Alias with a Graph Network Subgraph ID target and the Latest published version target
behavior, moves as soon as the owner publishes a version. Until the new version catches up, queries can report that no indexer is serving the
deployment, return fewer entities or an older _meta.block.number, or fail validation against a
changed schema.
- Query
_meta.deploymentand compare it with the Deployment CID you tested against. - To keep serving the previous version now, query its
deploymentCIDendpoint, or change your Endpoint Alias to a Deployment CID target for that CID. This works while an indexer still serves the previous version. - To avoid the gap in future, point your application at an Endpoint Alias with the Latest available version target behavior, which waits for indexers to serve each new version, or at one that targets a Managed Subgraph that follows the Subgraph. See Choose your Subgraph setup.
Endpoint Alias hasn't moved to the latest version
An Endpoint Alias with a Graph Network Subgraph ID target and the Latest available version target behavior keeps serving the previous version until an indexer on The Graph Network reports the latest one healthy and close to the chain head.
- Open Endpoint Aliases(opens in a new tab) and find the Endpoint Alias. The Target column shows the Latest Deployment CID and why it isn't serving yet.
- Wait for indexers to catch up on the new version. The Endpoint Alias moves on its own once they do.
- To serve the latest version now, change the target behavior to Latest published version, or change the target to its Deployment CID. Queries can fail or return incomplete data until indexers catch up.
- If no indexer serves the new version for a long time, an Owner or Developer can import it as a Managed Subgraph to index it with GraphOps.
GraphQL validation errors
The query references a field, filter, ordering value, or entity type that does not exist in the
Subgraph schema. The response has an errors array, often with HTTP status 200.
- Run schema introspection or inspect the schema published with the Subgraph.
- Confirm entity names and field casing.
- Confirm generated filters such as
id_gtorcreatedAtTimestamp_gteexist for that entity. - Confirm an Endpoint Alias update did not move the endpoint to a schema-incompatible deployment.
- Use Schema reference for schema discovery guidance.
Empty or stale results
The Subgraph may not have indexed the expected block yet, the query may be too restrictive, or the application may be querying a different deployment than expected.
- Query
_meta.block.numberand_meta.deployment, or read theX-Deployment-CIDresponse header. - Confirm the endpoint mode and identifier.
- Confirm filters and ordering fields match the schema.
- If using an Endpoint Alias, compare
X-Deployment-CIDor_meta.deploymentwith the serving Deployment CID shown for it in the platform UI. A Deployment CID target stays on that deployment. A Managed Subgraph target serves its Current version, or its Next version, which can be partially indexed, with the Next version behavior. A Graph Network Subgraph ID target with Latest published version can move before indexers serve the new version. - Compare
_meta.block.numberwith your expected chain head only when you have a reliable head source for the same network.
_meta.hasIndexingErrors is true
The deployment serving the query reports indexing errors, so some entities may be missing or stale.
- Log
_meta.deployment,_meta.block.number, and_meta.block.hash. - Confirm whether the errors started after a Subgraph deployment or Endpoint Alias update.
- Test a previous Deployment CID if you keep release records.
- Contact GraphOps support(opens in a new tab) with the endpoint and
_metavalues.
429 Too Many Requests
The organization exceeded a query-rate or concurrency limit.
- Reduce parallel requests.
- Add exponential backoff with jitter.
- Page large scans with stable cursors.
- Avoid running schema introspection on a hot path.
- Request a limit increase through GraphOps support(opens in a new tab).
Managed Subgraph validation or status is unavailable
The deployment may use a network that managed indexing does not support, or the latest status could not be received.
- Validate the immutable Deployment CID in the platform UI.
- Confirm that the deployment uses one managed indexing network across all data sources and templates.
- On the detail page, hover over, focus, or tap the status label for its explanation. Check indexing progress and Status updated time. The timestamp shows when the status was last received; it does not mean indexing has caught up with the network.
- If a status or measurement shows Unavailable, refresh the detail page before starting, promoting, or removing the resource. Contact support if the information remains unavailable or you cannot complete the action.
A Managed Subgraph can't follow a Graph Network Subgraph ID
Change target type keeps the Graph Network Subgraph ID choice disabled, or the ID you entered shows an error.
- If a Next version is staged, promote it or cancel the upgrade first.
- Check that the ID's current version uses the same network as the Managed Subgraph.
- Check that the currently indexing deployment is one of the versions published to the ID. If it isn't, publish it to the ID first.
- To follow a different ID than the one it follows now, change the target type to a Deployment CID first.
See Change the target type for every requirement.
Managed indexing has stopped
Open the explanation on the affected version's status label. If it identifies an error in your Subgraph, use the affected block and source location, when provided, to inspect the mapping, schema, entity data, ABI or manifest. Deploy a corrected version after resolving the cause.
If the explanation asks you to contact support, include the Deployment CID, the affected block and the Status updated time. Check Current and Next separately: a failed upgrade can leave the serving version healthy.
Contact support
When contacting GraphOps support(opens in a new tab), include:
- Organization name or ID.
- Endpoint mode: Deployment CID, Graph Network Subgraph ID, or Endpoint Alias.
- Identifier value, with API keys redacted.
- Approximate timestamp.
- HTTP status or GraphQL error message.
- The
X-Deployment-CIDresponse header, and_meta.deployment,_meta.block.number, and_meta.block.hashwhen available. - Whether the request used header auth or route-token auth.
Next steps
Last updated