Skip to content

Inconsistent debug_getBadBlocks response with spec #17179

@Alleysira

Description

@Alleysira

Overview

Hello erigon developers.

I'm running a separate Pectra PoS testnet chain for API testing. During testing, I observed discrepancies in the JSON-RPC responses from execution clients—geth, besu, nethermind, reth and erigon. Specifically, when calling debug_getBadBlocks, erigon will return null if no bad blocks recently, while other EL clients return []. Accroding to the spec, the results should be array.

{"id": 1, "jsonrpc": "2.0", "result": []}
{"id": 1, "jsonrpc": "2.0", "result": []}
{"id": 1, "jsonrpc": "2.0", "result": []}
{"id": 1, "jsonrpc": "2.0", "result": []}
{"id": 1, "jsonrpc": "2.0", "result": null}

I've pushed a PR for this and this is my first PR for erigon, thanks for your attention!

System information

Client versions

  • erigon/3.1.0/linux-amd64/go1.24.7
  • Nethermind/v1.33.1+cda59e5b/linux-x64/dotnet9.0.8
  • besu/v25.8.0/linux-x86_64/openjdk-java-21
  • Geth/v1.16.3-stable-d818a9af/linux-amd64/go1.24.6
  • reth/v1.7.0-9d56da5/x86_64-unknown-linux-gnu

with

  • Prysm/v6.0.4 (linux amd64)

Chain/Network: private Pectra testnet

Expected behaviour

Return empty []

Actual behaviour

Return null

Steps to reproduce the behaviour

curl POST http://127.0.0.1:5508 \
   -H "Content-Type: application/json" \
   -d '
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "debug_getBadBlocks",
  "params": []
}
'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions