Summary
We are observing cases where rbuilder fails to find the payload parent header via
provider.header(parent_hash) for several seconds, even though:
- the parent block has already been imported and committed to the canonical chain by reth
- the same block is immediately accessible via:
- HTTP RPC (
eth_getBlockByHash)
provider.header_by_number(block-1)
This causes repeated polling in wait_for_block_header and delays block building
in slot-critical paths.
Observed behavior
-
Reth logs show the parent block is:
- received from consensus engine
- added to canonical chain
- committed
-
Immediately after, rbuilder receives payload attributes and starts polling:
Payload parent header not found, trying again