Skip to content

[BUG] v2.4.0 regression: "transaction type not supported" error - keep-common header fix removed #3859

@lrsaturnino

Description

@lrsaturnino

Description

v2.4.0 reintroduces the "transaction type not supported" error that was fixed in v2.3.1. The fix (using HeaderByNumber instead of BlockByNumber in keep-common) was accidentally removed when the replace directive pointing to threshold-network/keep-common was dropped.

Related Issues

Root Cause

When fetching the initial block during BlockCounter initialization, the code uses BlockByNumber() which deserializes all transactions in the block. Blocks containing newer transaction types (EIP-4844 blob transactions from the Dencun upgrade) cause go-ethereum to fail with "transaction type not supported".

The fix in threshold-network/keep-common PR #1 changed this to use HeaderByNumber() which avoids transaction deserialization.

Evidence

v2.3.1 go.mod (has fix):

replace (
    github.com/keep-network/keep-common => github.com/threshold-network/keep-common v1.7.1-tlabs.0
    // ...
)

v2.4.0 go.mod (regression):

require (
    github.com/keep-network/keep-common v1.7.1-0.20240424094333-bd36cd25bb74
    // No replace directive - uses unfixed keep-network/keep-common
)

Symptoms

  • Intermittent startup failures with error:
    error connecting to Ethereum node: [could not create base chain handle:
    [failed to create Ethereum blockcounter: [failed to get initial block
    from the chain: [transaction type not supported]]]]
    
  • When acting as coordination leader, queries fail with fromBlock: 0x0 causing:
    Requested range exceeds maximum RPC range limit
    
  • Workaround: restart repeatedly (3-10 attempts) until a block without unsupported tx types is fetched

Environment

  • keep-core version: v2.4.0
  • Ethereum client: Besu (also reproducible with other clients)
  • Network: Ethereum Mainnet

Proposed Fix

Restore the replace directive in go.mod:

replace github.com/keep-network/keep-common => github.com/threshold-network/keep-common v1.7.1-tlabs.0

Or merge the header fix into keep-network/keep-common and update the dependency.

Affected Versions

Version Status
v2.4.0 AFFECTED
v2.3.1 NOT AFFECTED (has fix)

Metadata

Metadata

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