Skip to content

fix(cli-wallet): wait for checkpointed in serial sandbox flow tests#23911

Draft
AztecBot wants to merge 1 commit into
merge-train/spartan-v5from
cb/fix-spartan-v5-private-transfer
Draft

fix(cli-wallet): wait for checkpointed in serial sandbox flow tests#23911
AztecBot wants to merge 1 commit into
merge-train/spartan-v5from
cb/fix-spartan-v5-private-transfer

Conversation

@AztecBot

@AztecBot AztecBot commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

What

Fixes the cli-wallet/test/flows/private_transfer.sh failure on merge-train/spartan-v5 (CI: http://ci.aztec-labs.com/1780677846675396, failing flow log: http://ci.aztec-labs.com/08f16c9e3be0b78e).

The transfer tx was dropped with Tx dropped by P2P node ~5s after being sent, before it was ever observed as proposed.

Root cause

This is the exact serial-sandbox race that #23809 (split timing into consensus and proposer timetables) documented and fixed for the local-network internal setup txs, but the external cli-wallet flow tests still hit it.

The cli-wallet send / deploy / create-account / deploy-account commands default to --wait-for-status proposed. In the serial single-block local-network sandbox, a proposed block can be orphaned and pruned before its checkpoint is published, dropping a tx the caller already moved on from. The PR author addressed this for the local-network's own setup txs by waiting for CHECKPOINTED (yarn-project/aztec/src/local-network/local-network.ts), but the flow scripts run the CLI externally and were not covered, so they remained flaky under the new timing.

Fix

  • Make the cli-wallet default wait-for-status overridable via the WALLET_TX_WAIT_FOR_STATUS env var. Default behavior is unchanged for real users (still proposed).
  • Set WALLET_TX_WAIT_FOR_STATUS=checkpointed in the flow-test harness (test/flows/shared/setup.sh, sourced by every flow), so each tx is durably included before the next is sent.

This mirrors the remedy already applied to the internal setup txs, and keeps the production CLI default untouched.

Verification

  • Static checks only locally: bash syntax (bash -n), env-default behavior, prettier line-width, and confirmed no flow parses the proposed/checkpointed status string (tx_management.sh uses get-tx, which is unaffected).
  • The docker-compose flow test and ./bootstrap.sh ci could not be run in this container (no docker daemon available); the merge-train CI on this PR is the live verification.

Follows the merge-trains workflow: targets merge-train/spartan-v5 directly.


Created by claudebox · group: slackbot

The cli-wallet send/deploy/create-account/deploy-account commands default to
waiting for PROPOSED. In the serial single-block local-network sandbox a
proposed block can be orphaned and pruned before its checkpoint is published,
dropping a tx the caller already moved on from ("Tx dropped by P2P node"),
which flaked cli-wallet/test/flows/private_transfer.sh.

Make the default wait-for-status overridable via WALLET_TX_WAIT_FOR_STATUS and
set it to 'checkpointed' in the flow-test harness so each tx is durably
included before the next is sent. Mirrors the same fix already applied to the
local-network internal setup txs.
@AztecBot AztecBot added ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR. labels Jun 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-draft Run CI on draft PRs. claudebox Owned by claudebox. it can push to this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant