Bug: TransferStatusPage regresses to step 1 after failed hash resubmit #86

Open
opened 2026-03-30 02:54:16 +00:00 by Brouie · 4 comments
Brouie commented 2026-03-30 02:54:16 +00:00 (Migrated from gitlab.com)

After HASH SUBMISSION FAILED on step 2, clicking the resubmit button drops the TransferStatusPage back to step 1 (DEPOSIT ACTIVE, 'Confirming deposit on source chain') instead of staying on step 2 or retrying the submission. The deposit is already confirmed on-chain — page should not regress. Happens both from the Transfer Status page retry button and after manual SUBMIT HASH NOW on the Verify page. Found on v0.1.197/84cf7e4 testing Anvil->LocalTerra 100 TKNA.

After HASH SUBMISSION FAILED on step 2, clicking the resubmit button drops the TransferStatusPage back to step 1 (DEPOSIT ACTIVE, 'Confirming deposit on source chain') instead of staying on step 2 or retrying the submission. The deposit is already confirmed on-chain — page should not regress. Happens both from the Transfer Status page retry button and after manual SUBMIT HASH NOW on the Verify page. Found on v0.1.197/84cf7e4 testing Anvil->LocalTerra 100 TKNA.
PlasticDigits commented 2026-03-30 08:25:30 +00:00 (Migrated from gitlab.com)

mentioned in commit 001afd14ee

mentioned in commit 001afd14ee0e8b2a1aa1cad703dce857020a084c
PlasticDigits commented 2026-03-30 08:47:41 +00:00 (Migrated from gitlab.com)

@brouie Fix landed on feat/solana-integration (commit 001afd1): hash retry no longer resets lifecycle to deposited, so the stepper stays on Submit Hash; we call triggerSubmit() after resetForRetry(). Also tightened step index for retry/synthetic source-only lookups. Please verify on Anvil → LocalTerra when you can.

@brouie Fix landed on `feat/solana-integration` (commit `001afd1`): hash retry no longer resets lifecycle to `deposited`, so the stepper stays on Submit Hash; we call `triggerSubmit()` after `resetForRetry()`. Also tightened step index for retry/synthetic source-only lookups. Please verify on Anvil → LocalTerra when you can.
Brouie commented 2026-04-23 05:08:16 +00:00 (Migrated from gitlab.com)

@PlasticDigits confirming your PDA-keypair hypothesis — QA stack deploy-solana step fails with DeclaredProgramIdMismatch (AnchorError 4100), so E2E verification is blocked.

Attempted this session: make start-qa → deploy-solana loops on 'Error creating IDL account' with program 74o1KKwuUvtrf6ozbjmVrARnoHpQ4WjsQ647TCTKe1mW — declared program id in source doesn't match deployed address. Bridge stack has Anvil + LocalTerra up but Solana step aborts the whole start flow (no SKIP_SOLANA flag in start-qa.sh, solana is baked into docker compose up + deploy-solana).

Code-level review of the fix 001afd1 (pure frontend, 20 lines in TransferStatusPage.tsx):

  • resetForRetry() no longer writes lifecycle: 'deposited' on retry (root cause of the regression)
  • void triggerSubmit() called directly after resetForRetry() — cleaner retry flow
  • currentStepIdx hardened for 3 edge states: retryingHash, submitting-hash with source present, synthetic source-only (source confirmed but dest null)
  • useCallback dep array updated to include triggerSubmit

Fix is present on main as of this morning's pull, code review looks correct. Actual reproduction of the failed-hash-retry flow deferred until Solana PDA is sorted and QA stack can come up clean (or until you want me to patch start-qa to allow a Solana-less bringup for EVM↔Terra verification).

Leaving open.

@PlasticDigits confirming your PDA-keypair hypothesis — QA stack deploy-solana step fails with `DeclaredProgramIdMismatch` (AnchorError 4100), so E2E verification is blocked. Attempted this session: `make start-qa` → deploy-solana loops on 'Error creating IDL account' with program `74o1KKwuUvtrf6ozbjmVrARnoHpQ4WjsQ647TCTKe1mW` — declared program id in source doesn't match deployed address. Bridge stack has Anvil + LocalTerra up but Solana step aborts the whole start flow (no `SKIP_SOLANA` flag in start-qa.sh, solana is baked into `docker compose up` + `deploy-solana`). Code-level review of the fix `001afd1` (pure frontend, 20 lines in TransferStatusPage.tsx): - `resetForRetry()` no longer writes `lifecycle: 'deposited'` on retry (root cause of the regression) - `void triggerSubmit()` called directly after `resetForRetry()` — cleaner retry flow - `currentStepIdx` hardened for 3 edge states: `retryingHash`, `submitting-hash` with source present, synthetic source-only (source confirmed but dest null) - useCallback dep array updated to include `triggerSubmit` Fix is present on main as of this morning's pull, code review looks correct. Actual reproduction of the failed-hash-retry flow deferred until Solana PDA is sorted and QA stack can come up clean (or until you want me to patch start-qa to allow a Solana-less bringup for EVM↔Terra verification). Leaving open.
PlasticDigits commented 2026-04-23 05:30:37 +00:00 (Migrated from gitlab.com)

Set as low priority

Set as low priority
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-bridge-monorepo#86
No description provided.