fix: handle pruned RPC state in SubQuery node

Substrate nodes prune historical state by default (~256 blocks).
When SubQuery restarts and tries to fetch runtime version for old
blocks, it crashes with "State already discarded". This patch adds
a fallback to current runtime version when historical state is
unavailable, preventing crash loops on pruned RPC endpoints.

Also removes --pull from deploy workflow to avoid unnecessary
full rebuilds on every push.
This commit is contained in:
2026-02-19 02:22:52 +03:00
parent 151389a0cc
commit d270504c9a
3 changed files with 60 additions and 1 deletions
+5
View File
@@ -41,4 +41,9 @@ RUN node -e " \
fs.writeFileSync(p, JSON.stringify(pkg, null, 2)); \
"
# Patch: handle pruned blockchain state gracefully.
# Without this, SubQuery crashes when RPC nodes have pruned old block state.
COPY docker/patches/pruned-state-fallback.js /tmp/pruned-state-fallback.js
RUN node /tmp/pruned-state-fallback.js && rm /tmp/pruned-state-fallback.js
ENTRYPOINT ["/app/node_modules/.bin/subql-node"]