reth icon indicating copy to clipboard operation
reth copied to clipboard

EVM reported invalid transaction with `debug_executionWitness`

Open 2xic opened this issue 4 weeks ago • 1 comments
trafficstars

Describe the bug

I run the following where Reth is running on said host:port.

curl -X POST   -H "Content-Type: application/json"   --data '{ "jsonrpc": "2.0", "method": "debug_executionWitness","params": ["0x15e0d46"], "id": 1 }'   http://localhost:8545

It returns

{"jsonrpc":"2.0","id":1,"error":{"code":-32603,"message":"EVM reported invalid transaction (0x1d81c5819781a73440f4a1653889f6a6306557664fb90229ce0db70b5d52e087): nonce 4308 too high, expected 0"}}

I think that error message either is incorrect (because I prune state) or there is a bug with my state or the the rpc command implementation. Attached my various configs to help with the trubleshooting.

Steps to reproduce

My Reth.toml is the following

[datadir]
# Data directory
static_files = "/home/eth-node/reth"

[prune]
# Run pruning every 5 blocks
block_interval = 5

[prune.segments]
# Prune account history - keep last ~10,064 blocks (~1.4 days)
account_history = { distance = 10064 }

# Prune storage history - keep last ~10,064 blocks
storage_history = { distance = 10064 }

# Prune receipts - keep last ~10,064 blocks
receipts = { distance = 10064 }

# Prune sender recovery data
sender_recovery = { distance = 10064 }

# Keep transaction lookup for recent blocks
transaction_lookup = { distance = 10064 }

# Prune contract logs
contract_logs = { distance = 10064 }

[http]
addr = "0.0.0.0"
port = 8545
api = ["debug", "eth", "net", "web3"]

[debug]
# Stop syncing at this block hash
tip = "0x1a31d9f36c9e89dc8082a7ca48e5a70facb17129b0d79ffbae6c8653aeaec4a9"

I run it with this

reth node \
  --config /home/eth-node/config/reth.toml \
  --datadir /home/eth-node/reth \
  --authrpc.jwtsecret /home/eth-node/config/jwt.hex \
  --authrpc.addr 127.0.0.1 \
  --authrpc.port 8551 \
  --http \
  --http.api debug,eth,net,web3

I also run Nimbus on the consensus side in case that affects things.

Node logs

The node is still syncing, so only seeing messages from that. I used to see block not found a few days ago, so not getting a new error messages which indicating a incorrect state makes me file the bug report, although maybe the issue is just unclear error message.

2025-10-22T22:57:52.058458Z  INFO ChainOrchestrator::poll: Executed block range start=5286682 end=5286871 throughput="103.65Mgas/second"
2025-10-22T22:58:00.663824Z  INFO Received block from consensus engine number=23636184 hash=0x8976329d3c4a3944040576248292e1956439367843b5a7248898541b5618dba0
2025-10-22T22:58:02.094406Z  INFO ChainOrchestrator::poll: Executed block range start=5286872 end=5287037 throughput="89.79Mgas/second"
2025-10-22T22:58:12.107872Z  INFO ChainOrchestrator::poll: Executed block range start=5287038 end=5287230 throughput="119.86Mgas/second"
2025-10-22T22:58:13.906528Z  INFO Received block from consensus engine number=23636185 hash=0xf3f9a8cdc3f4aad7e383b5cd37df2cde3cbe5ef3a2956e15fd500324de31fe5a
2025-10-22T22:58:16.386151Z  INFO Status connected_peers=130 stage=Execution checkpoint=5279305 target=23620829 stage_progress=3.41%
2025-10-22T22:58:22.127773Z  INFO ChainOrchestrator::poll: Executed block range start=5287231 end=5287461 throughput="129.66Mgas/second"
2025-10-22T22:58:24.419988Z  INFO Received block from consensus engine number=23636186 hash=0xf3f3935dbfcccabd1b649cae2f118a2a7f09b6a88d7d8f57f0afd7db38962468
2025-10-22T22:58:32.165260Z  INFO ChainOrchestrator::poll: Executed block range start=5287462 end=5287695 throughput="136.05Mgas/second"
2025-10-22T22:58:37.066207Z  INFO Received block from consensus engine number=23636187 hash=0xdb7bb689142fea2f3689cc938fc3fad9d536b94a8e0c1a58371941014247773e
2025-10-22T22:58:41.386172Z  INFO Status connected_peers=130 stage=Execution checkpoint=5279305 target=23620829 stage_progress=3.41%
2025-10-22T22:58:42.184041Z  INFO ChainOrchestrator::poll: Executed block range start=5287696 end=5287915 throughput="128.14Mgas/second"
2025-10-22T22:58:49.006916Z  INFO Received block from consensus engine number=23636188 hash=0x57bab971350bb7857f3b9bdd1b05551d5993b0b72983b118715bfdbfc1e32fc3
2025-10-22T22:58:52.186520Z  INFO ChainOrchestrator::poll: Executed block range start=5287916 end=5288118 throughput="125.96Mgas/second"

Platform(s)

Linux (x86)

Container Type

Not running in a container

What version/commit are you on?

root@Ubuntu-2404-noble-amd64-base /home/eth-node # reth --version
reth-ethereum-cli Version: 1.8.2
Commit SHA: 67bf37babdb1439d911b0fee06305d8a9248f1d1
Build Timestamp: 2025-10-18T19:45:07.842761805Z
Build Features: jemalloc,otlp
Build Profile: release

What database version are you on?

root@Ubuntu-2404-noble-amd64-base /home/eth-node # reth db version
2025-10-22T23:00:34.207723Z  INFO Initialized tracing, debug log directory: /root/.cache/reth/logs/mainnet
Current database version: 2
Local database version: 2

Which chain / network are you on?

Mainnet

What type of node are you running?

Pruned with custom reth.toml config

What prune config do you use, if any?

[prune]
# Run pruning every 5 blocks
block_interval = 5

[prune.segments]
# Prune account history - keep last ~10,064 blocks (~1.4 days)
account_history = { distance = 10064 }

# Prune storage history - keep last ~10,064 blocks
storage_history = { distance = 10064 }

# Prune receipts - keep last ~10,064 blocks
receipts = { distance = 10064 }

# Prune sender recovery data
sender_recovery = { distance = 10064 }

# Keep transaction lookup for recent blocks
transaction_lookup = { distance = 10064 }

# Prune contract logs
contract_logs = { distance = 10064 }

If you've built Reth from source, provide the full command you used

cargo install --git https://github.com/paradigmxyz/reth.git --bin reth

Code of Conduct

  • [x] I agree to follow the Code of Conduct

2xic avatar Oct 22 '25 23:10 2xic