Skip to content
This repository was archived by the owner on Feb 12, 2026. It is now read-only.

fix(gobrr): heal nonce gaps from transient RPC failures#44

Closed
niran wants to merge 1 commit intodanyal/p2p-testerfrom
fix/nonce-gap-resync
Closed

fix(gobrr): heal nonce gaps from transient RPC failures#44
niran wants to merge 1 commit intodanyal/p2p-testerfrom
fix/nonce-gap-resync

Conversation

@niran
Copy link

@niran niran commented Feb 11, 2026

Summary

  • On each new block, query getTransactionCount(pending) and reset the local nonce if a gap is detected
  • The signer increments its nonce before RPC submission, so a transient failure (e.g., rate limit -32016) silently creates a gap that permanently blocks all subsequent txs for that sender
  • Uses a 2-second timeout on the nonce query to avoid blocking the tokio::select! loop when the RPC is saturated

When eth_sendRawTransaction fails transiently (e.g., rate limit -32016),
the signer has already incremented its local nonce. This creates a gap
that permanently blocks all subsequent transactions for that sender,
since the node rejects out-of-order nonces.

On each new block, query getTransactionCount(pending) and reset the
local nonce if a gap is detected. Uses a 2-second timeout to avoid
blocking the tokio::select! loop when the RPC is saturated.
@danyalprout
Copy link
Collaborator

I don't think this will scale unfortunately. I'm running this CLI with like 500 senders right now :D

mw2000 pushed a commit that referenced this pull request Feb 12, 2026
Adds end to end transactions testing via 'just e2e' which submits a tr=xn to TIPS and checks for inclusion on the sequencer
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants