flashbots / flashbots/rbuilder

Parent header sometimes not found via hash lookup even after canonical commit in reth

Open
#853 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
567
Forks
209
PR merge metrics
No merged PRs in 30d

Description

### 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

1. Reth logs show the parent block is:
- received from consensus engine
- added to canonical chain
- committed

2. Immediately after, rbuilder receives payload attributes and starts polling:

```text
Payload parent header not found, trying again

Contributor guide

Open the contributing guide

Research direction

Start at the wait_for_block_header path and compare provider.header(parent_hash) with provider.header_by_number(block-1) while reviewing the reported reth import and canonical-commit timing. Done means the parent header lookup no longer misses an already committed canonical block or causes repeated slot-critical polling.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, blockchain
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.