diff --git a/lib/cmd/run/transmitter.go b/lib/cmd/run/transmitter.go index be8719d..61ffb24 100644 --- a/lib/cmd/run/transmitter.go +++ b/lib/cmd/run/transmitter.go @@ -60,6 +60,15 @@ func (t *Transmitter) Broadcast(txsMap map[int]types.Transactions) error { if err != nil { // Check for transient errors to retry errMsg := err.Error() + + // Nonce too low or already known: tx was already included + // on-chain or replaced, safe to skip and move on + if strings.Contains(errMsg, "nonce too low") || + strings.Contains(errMsg, "already known") { + break + } + + // Transient errors: retry with backoff if strings.Contains(errMsg, "txpool is full") || strings.Contains(errMsg, "Too Many Requests") || strings.Contains(errMsg, "429") ||