Skip to content

fix(consume): map reth BAL account-miss and item-cost rejection messages - #3371

Merged
LouisTsai-Csie merged 2 commits into
ethereum:forks/amsterdamfrom
spencer-tb:reth-bal-exception-mapping
Aug 14, 2026
Merged

LouisTsai-Csie merged 2 commits into
ethereum:forks/amsterdamfrom
spencer-tb:reth-bal-exception-mapping

Conversation

@spencer-tb

@spencer-tb spencer-tb commented Aug 13, 2026 •

Copy link
Copy Markdown
Contributor

Description

Fully vibed.

Map two reth rejection messages that currently fail consume-engine with "Undefined exception message" (glamsterdam-quick, fixtures tests-glamsterdam-devnet@v8.1.0):

  • Bal error: Account .* not found in BAL → INVALID_BLOCK_ACCESS_LIST: reth executes payloads against the BAL as a state overlay, so a corrupted BAL that omits a touched account surfaces this message; for the test_bal_invalid_* engine cases (~9 fails) the rejection is semantically correct and only unmapped. (Reth also returns this message for blocks that are invalid for gas/system-contract reasons — those tests keep failing on the exception mismatch, now with a clearer diagnostic; that ordering issue is reth-side.)
  • block access list item cost exceeds gas limit → BLOCK_ACCESS_LIST_GAS_LIMIT_EXCEEDED: correct rejections of test_bal_gas_limit_boundary / test_fork_transition_bal_size_constraint engine cases (~5 fails), only unmapped.

Both verified with message_to_exception against the exact messages from run 1786545713-b58ee7108bac1061a0e86683cb053c10.

Same shape as the geth mapper additions in #3347.

Related Issues or PRs

N/A.

Checklist

  • Ran fast static checks to avoid CI fails, see Code Standards & Verifying Changes: just static
  • PR title has the form <type>(<area>): <title>, where <type> and <area> come from an appropriate C-<type>, respectively A-<area>, label. The title should match the target squash commit message.

Cute Animal Picture

Put a link to a cute animal picture inside the parenthesis-->

Update: also maps system contract .* has no code → SYSTEM_CONTRACT_EMPTY, the message introduced by alloy-rs/evm#400 / paradigmxyz/reth#26695 for the EIP-8282 empty-predeploy rejection (covers the 4 test_builder_*_contract_deployment engine fails). Verified both new messages disambiguate from SYSTEM_CONTRACT_CALL_FAILED.

@codecov

codecov Bot commented Aug 13, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.53%. Comparing base (d2e6bd1) to head (86da54b).
⚠️ Report is 1 commits behind head on forks/amsterdam.

Additional details and impacted files
@@               Coverage Diff                @@
##           forks/amsterdam    #3371   +/-   ##
================================================
  Coverage            93.53%   93.53%           
================================================
  Files                  624      624           
  Lines                37074    37074           
  Branches              3394     3394           
================================================
  Hits                 34679    34679           
  Misses                1645     1645           
  Partials               750      750           
Flag Coverage Δ
unittests 93.53% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@spencer-tb
spencer-tb marked this pull request as ready for review August 13, 2026 15:37
@AayushCurious

Copy link
Copy Markdown

LGTM. Clean mapping fixes for the unmapped Reth BAL exceptions.

@LouisTsai-Csie
LouisTsai-Csie merged commit 292fa9c into ethereum:forks/amsterdam Aug 14, 2026
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants