Skip to content

fix: return error response for genesis block in debug_traceBlockByNumber#10133

Merged
macfarla merged 3 commits intobesu-eth:mainfrom
vivek-0509:10115-genesis-block-error-response
Apr 1, 2026
Merged

fix: return error response for genesis block in debug_traceBlockByNumber#10133
macfarla merged 3 commits intobesu-eth:mainfrom
vivek-0509:10115-genesis-block-error-response

Conversation

@vivek-0509
Copy link
Copy Markdown
Contributor

PR description

Genesis block (block 0) has no transactions to trace, it represents the initial chain state with no EVM execution. Previously, calling debug_traceBlockByNumber with block 0x0 returned null. This change returns a proper JSON-RPC error response ({"code": -32000, "message": "genesis is not traceable"}) matching the debug trace spec.

Changes:

  • Added GENESIS_BLOCK_NOT_TRACEABLE error type to RpcErrorType
  • Added genesis block check in DebugTraceBlockByNumber.resultByBlockNumber()
  • Added unit test for genesis block error response

Fixed Issue(s)

Relates to #10115 (Item 6)

Thanks for sending a pull request! Have you done the following?

  • Checked out our contribution guidelines?
  • Considered documentation and added the doc-change-required label to this PR if updates are required.
  • Considered the changelog and included an update if required.
  • For database changes (e.g. KeyValueSegmentIdentifier) considered compatibility and performed forwards and backwards compatibility tests

Locally, you can run these tests to catch failures early:

  • spotless: ./gradlew spotlessApply
  • unit tests: ./gradlew build
  • acceptance tests: ./gradlew acceptanceTest
  • integration tests: ./gradlew integrationTest
  • reference tests: ./gradlew ethereum:referenceTests:referenceTests
  • hive tests: Engine or other RPCs modified?

@vivek-0509
Copy link
Copy Markdown
Contributor Author

@macfarla please take a look thanku

Genesis block (block 0) has no transactions to trace. Instead of
returning null, return a JSON-RPC error matching the debug trace spec.

Relates to besu-eth#10115

Signed-off-by: Vivek Singh Solanki <viveksolanki0509@gmail.com>
@vivek-0509 vivek-0509 force-pushed the 10115-genesis-block-error-response branch from f7d5c68 to 726250d Compare April 1, 2026 04:14
@vivek-0509
Copy link
Copy Markdown
Contributor Author

@macfarla I’ve rebased the branch and pushed the to rerun the CI. The two failing checks were unrelated to this PR. Could you please approve the workflows?

@vivek-0509
Copy link
Copy Markdown
Contributor Author

vivek-0509 commented Apr 1, 2026

CI failures appear to be due to Maven Central returning 403s, unrelated to this change. Should resolve on re-run, the past two ci that failed before are now passing.

@macfarla macfarla self-assigned this Apr 1, 2026
@macfarla macfarla merged commit 11e74ae into besu-eth:main Apr 1, 2026
46 checks passed
@macfarla macfarla added the RPC label Apr 2, 2026
vivek-0509 added a commit to vivek-0509/besu that referenced this pull request Apr 2, 2026
…error response

Updated DebugTraceTransactionIntegrationTest to expect JsonRpcErrorResponse
instead of success with null for unknown transaction hash. Added changelog
entry covering both debug_traceTransaction (besu-eth#10150) and
debug_traceBlockByNumber (besu-eth#10133) error response changes.

Refs: besu-eth#10115

Signed-off-by: Vivek Singh Solanki <viveksolanki0509@gmail.com>
vivek-0509 added a commit to vivek-0509/besu that referenced this pull request Apr 2, 2026
…error response

Updated DebugTraceTransactionIntegrationTest to expect JsonRpcErrorResponse
instead of success with null for unknown transaction hash. Added changelog
entry covering both debug_traceTransaction (besu-eth#10150) and
debug_traceBlockByNumber (besu-eth#10133) error response changes.

Refs: besu-eth#10115

Signed-off-by: Vivek Singh Solanki <viveksolanki0509@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants