From 32182d143c13f21e83e81c3241724c816fa97889 Mon Sep 17 00:00:00 2001 From: yn-alex <51677654+yn-alex@users.noreply.github.com> Date: Sun, 20 Sep 2026 21:56:25 +0300 Subject: [PATCH] Add 'World state unavailable' as non-retryable for proof lower bound Linea (linea-besu) returns this error from eth_getProof on pruned state. Without it in NO_PROOF_ERRORS, RecursiveLowerBound retries indefinitely and emits the "report it to dshackle devs" warning. Reproduced on rpc-svc-fsn1s3 (linea mainnet): - eth_getProof at an old/pruned block -> {"error":{"code":-32000,"message":"World state unavailable"}} - eth_getProof at a recent block -> valid proof returned Co-Authored-By: Claude Sonnet 5 --- .../upstream/ethereum/EthereumLowerBoundProofDetector.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/EthereumLowerBoundProofDetector.kt b/src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/EthereumLowerBoundProofDetector.kt index dad06e075..a00f320cd 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/EthereumLowerBoundProofDetector.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/upstream/ethereum/EthereumLowerBoundProofDetector.kt @@ -32,6 +32,7 @@ class EthereumLowerBoundProofDetector( "not supported", "evm module does not exist on height", "state is not available", // opbnb / bsc — eth_getProof on pruned state + "World state unavailable", // linea — eth_getProof on pruned state ) }