Skip to content

Handle queued XRPL transactions before retrying - #92

Merged
RogerKSI merged 2 commits into
mainfrom
codex/handle-xrpl-queued-transactions
Aug 24, 2026
Merged

Handle queued XRPL transactions before retrying#92
RogerKSI merged 2 commits into
mainfrom
codex/handle-xrpl-queued-transactions

Conversation

@RogerKSI

@RogerKSI RogerKSI commented Aug 23, 2026

Copy link
Copy Markdown
Member

Summary

  • wait for an XRPL terQUEUED submission to reach a validated result using its original transaction hash
  • prevent Falcon from fetching another account sequence and re-signing while that transaction is pending
  • add regression coverage for txnNotFound followed by validated tesSUCCESS

Root Cause

Falcon treated every initial XRPL engine result other than tesSUCCESS as a broadcast failure. However, terQUEUED means the submitted transaction is pending and may still validate. Falcon immediately entered its normal retry loop, fetched a newer account sequence, and signed the same logical Oracle update again. When the original transaction subsequently validated, those later attempts produced sequence-related failures such as tefPAST_SEQ and repeated relay alerts.

Scope

  • XRPL only
  • transaction fee remains unchanged
  • no behavior change for other chain providers

Validation

  • go test -timeout=2m ./relayer/chains/xrpl -count=1
  • go test -timeout=2m ./relayer/chains/... -count=1
  • go vet ./relayer/chains/xrpl
  • golangci-lint run --timeout=5m0s
  • git diff --check

Limitation

The pending transaction is tracked in process until validation or service-context cancellation. Durable restart recovery and LastLedgerSequence expiry handling are intentionally outside this minimal fix.

@RogerKSI
RogerKSI requested a review from Marca23 August 23, 2026 19:06
@RogerKSI
RogerKSI merged commit e94eafc into main Aug 24, 2026
2 checks passed
@RogerKSI
RogerKSI deleted the codex/handle-xrpl-queued-transactions branch August 24, 2026 09:18
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