core, graph, store: Pause failed subgraphs instead of unassigning by lutter · Pull Request #5971 · graphprotocol/graph-node

incrypto32

@lutter

Unassigning subgraphs has a number of unwanted side-effects, e.g.,
canceling copies. Pausing is safer alternative to avoid spending cycles on
a subgraph we know will not make progress.

@lutter lutter deleted the lutter/pause-on-failure branch

May 1, 2025 18:04

cjorge-graphops added a commit to graphops/graph-node that referenced this pull request

Nov 14, 2025
After this was merged graphprotocol#5160 substreams fatal errors can write SubgraphError{ block_ptr: None }. This introduces a bug that shows in Status API as those records can surface as fatalError.block = null violating the schema of type Block { hash: Bytes! number: BigInt! }

A later commit graphprotocol#5971 makes it much easier to trigger this when doing a status API that returns all subgraphs (empty [] array for deployment ID) as failed substreams linger on in the indexing status set as paused instead of being unassigned.