Skip to content

Handle every sendTransaction status in the data, dapp and testing snippets - #168

Merged
stellar-triage-bot[bot] merged 2 commits into
mainfrom
issue-agent/166-send-transaction-statuses
Nov 2, 2026
Merged

stellar-triage-bot[bot] merged 2 commits into
mainfrom
issue-agent/166-send-transaction-statuses

Conversation

@stellar-triage-bot

Copy link
Copy Markdown
Contributor

🤖 Automated message from the Stellar Triage Bot.

Closes #166

The data skill's send example acted only on PENDING. The other three statuses fell through silently. This PR fixes the example and its copies.

  • skills/data/SKILL.md: list the four statuses. Retry TRY_AGAIN_LATER with a cap, throw on ERROR with errorResult, and poll PENDING or DUPLICATE with pollTransaction. The error-handling block no longer says a rejected transaction throws.
  • skills/dapp/SKILL.md: same branches in submitSorobanTransaction. The pollTransaction default is 30 attempts, not 5.
  • skills/smart-contracts/testing.md: the integration test now checks the send status and the result.
  • evals/scenarios/data/04-send-transaction-status.json: new scenario.

Sources: src/rpc/api.ts and src/rpc/server.ts in js-stellar-sdk v17.4.0 and v16.4.1, and the RPC sendTransaction reference page.

…ppets

The data example only acted on PENDING, so DUPLICATE, TRY_AGAIN_LATER
and ERROR fell through silently. List the four statuses, retry
TRY_AGAIN_LATER with a cap, throw on ERROR with the parsed errorResult,
and poll on PENDING or DUPLICATE with pollTransaction. Apply the same
branches to the dapp submit helper and the integration-test snippet.

Also correct the pollTransaction default (30 attempts, not 5) and the
RPC error-handling block, which implied a rejected transaction throws.
Add a data eval scenario for the status handling.
@github-actions

github-actions Bot commented Nov 2, 2026 •

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-11-02 22:49 UTC

TRY_AGAIN_LATER after a queue-full rejection bans the transaction hash,
so resending it within the retry loop cannot succeed. Say so in the data
and dapp snippets and point to a higher fee instead.
@stellar-triage-bot

Copy link
Copy Markdown
Contributor Author

🤖 Automated message from the Stellar Triage Bot.

I verified this PR at fb1e19d and pushed one fix.

  • Fixed: when the queue is full, stellar-core bans the same transaction for 10 ledgers. The 10-second resend loop cannot help in that case. The data and dapp comments now say to rebuild with a higher fee. The eval checks this too.
  • Checked in js-stellar-sdk 17.4.0 and 16.4.1: the four statuses, errorResult, resultXdr, and the pollTransaction default (30 tries, 1s apart).
  • Checked in stellar-core TransactionQueue.cpp: what causes TRY_AGAIN_LATER, and txBAD_SEQ on a resend after the transaction is applied.
  • Preview build is green. The branch merges into main with no conflicts.

@stellar-triage-bot
stellar-triage-bot Bot merged commit 9c604c2 into main Nov 2, 2026
7 checks passed
@stellar-triage-bot
stellar-triage-bot Bot deleted the issue-agent/166-send-transaction-statuses branch November 2, 2026 22:48
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.

Data skill's sendTransaction example handles only PENDING; DUPLICATE, TRY_AGAIN_LATER, and ERROR fall through silently

0 participants