Skip to content

fix(chain): fail over aborted RPC publish requests - #1942

Merged
branarakic merged 2 commits into
testnet-canaryfrom
codex/fix-publish-abort-recovery
Jul 23, 2026
Merged

fix(chain): fail over aborted RPC publish requests#1942
branarakic merged 2 commits into
testnet-canaryfrom
codex/fix-publish-abort-recovery

Conversation

@branarakic

Copy link
Copy Markdown
Contributor

Summary

  • classify raw DOM/undici AbortError and Node ABORT_ERR as retryable chain-RPC transport interruptions
  • fail over point reads and rebroadcast the byte-identical signed transaction through the next configured endpoint
  • preserve the already-known transaction hash when broadcast endpoints are exhausted, including in the retryable HTTP 503 response

Why

The multi-CG load smoke exposed an ambiguous publish outcome: the chain transaction could be accepted and minted, while the RPC request then aborted and the publisher reported a failure. The raw abort bypassed the existing retry/failover policy because it did not carry one of the previously recognized network error codes.

This change handles that failure at the chain transport seam. It does not re-sign or create a second transaction: failover submits the same signed bytes with the same transaction hash. Deterministic EVM failures remain non-retryable.

This is complementary to #1878. That PR recovers assets that were already stranded after a successful mint; this PR prevents the observed raw-abort path from becoming stranded in the first place and returns the transaction hash if every configured RPC endpoint is unavailable.

Verification

  • full dependency and CLI build passed
  • full chain unit lane passed
  • full CLI unit lane passed
  • focused chain failover regressions: 49 passed
  • focused CLI transport-status regressions: 9 passed

Comment thread packages/chain/src/evm-adapter-rpc.ts Outdated
Comment thread packages/chain/src/evm-adapter-rpc.ts
Comment thread packages/cli/src/daemon/http-utils.ts Outdated
@branarakic
branarakic changed the base branch from main to testnet-canary July 23, 2026 14:22
@branarakic
branarakic merged commit 3ca9212 into testnet-canary Jul 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants