fix(migration): harden RN setup + tag metadata waits for migration_1 - #219
fix(migration): harden RN setup + tag metadata waits for migration_1#219piotr-iohk wants to merge 2 commits into
Conversation
CI Migration (and other iOS restore flows) intermittently fail when `mobile: setPasteboard` dies with `xcrun simctl pbcopy` exit code 60. Retry setPasteboard, fall back to typeText if pasteboard/Paste menu is unavailable, and wait explicitly for RestoreButton in restoreRnWallet. Evidence: bitkit-ios E2E Migration run 34431873300 attempt 3 migration_1 — Appium session timeout, then pbcopy exit 60 in pasteIOSText, then RestoreButton 60s timeout.
|
Validation dispatch: bitkit-android E2E Migration with |
Android nightly migration_1 (v1.1.3/v1.1.6) flakes on SendSuccess, ActivityShort-1 during RN setup, and Tag-received after native restore. iOS migration_1 attempt on run 34431873300 also hit Tag-received after balance matched. Retry GRAB/SendSuccess, wait longer for ActivityShort, backup before uninstall, and retry TagsPrompt until Tag-* appears without relaxing balance assertions.
9750b7f to
4788829
Compare
|
Rebased onto #218 (pasteIOSText) so iOS prepare/e2e can validate both.
|
|
Iteration 1 Android Migration result ( |
Iteration 1 classification (run
|
| Job | Result | First actionable |
|---|---|---|
| mig1 v1.1.4 | ✅ | — |
| mig1 v1.1.3 | ❌ | post-send `ActivityShort-1` (45s) ×2; then transfer expect `100 000` |
| mig1 v1.1.6 | ❌ | attempt1/3: Balance mismatch Expected ~446k got ~346k (exactly 100k short) after our backup/restore waits; attempt2: transfer `100 000` |
| mig4 v1.1.4 | ❌ | HeaderMenu / GRAB / DrawerSettings (RN setup nav flake; SendSuccess retry logged) |
Harness wins: `SendSuccess` GRAB retries fired; setup often reaches uninstall/restore.
Do not fake-pass: 100k-short balance is product/env (same family as known mig_3 signal).
Next: `73e8ae2` ActivityShowAll tagging fallback — Android re-dispatch 34532902697. If v1.1.6 still 100k-short after clean setup, stop iterating balance; leave assertion loud.
BACK OUT iteration 2 (`73e8ae2`)Android re-dispatch Keep (iteration 1): SendSuccess GRAB retry, backup/restore waits, openTagFilter retries, longer ActivityShort wait — evidence in |
73e8ae2 to
4788829
Compare
|
iOS Migration FULL GREEN: https://github.com/synonymdev/bitkit-ios/actions/runs/34531814945 (openTagFilter retries visible on mig1 attempt2; attempt3 Migration verified). Android iter1 https://github.com/synonymdev/bitkit-android/actions/runs/34529852920 — SendSuccess retries help; 100k-short remains product/env. ActivityShowAll iter BACKED OUT (branch at 4788829). |
Summary
migration_1: retryGRAB→SendSuccess, longer/more reliableActivityShort-1discovery before tagging.migration_1, and briefly after native restore before tag asserts.TagsPrompt/Tag-*inverifyMigration(shared iOS+Android) — balance can restore from Electrum before tag metadata arrives.migration_setup_*backup waits 20s → 40s (feeds iOS prepare-wallets).Does not relax balance assertions (migration_3 100k-short / zero-balance mismatches stay as product/env signals).
Evidence
Android nightly
E2E Migration34427828554(master, 2026-09-10)Only
migration_1-restorefailed (v1.1.3 + v1.1.6); v1.1.4 mig1 and all mig2/3/4 green.v1.1.3 job
102883890380:SendSuccessstill not displayed after 30000ms (RN send swipe)ActivityShort-1still not displayed after 30000ms (post-fund tag)ActivityShort-1again after sendv1.1.6 job
102883890391:ActivityShort-1after fundTag-receivedstill not displayedSendSuccessafter GRABiOS
E2E Migration34431873300(finished)e2e-tests - v1.1.6 - migration_1-restore:2–3. Restore OK, balance
446184matched, then~Tag-receivedstill not displayed after 30000msClassification: harness for SendSuccess / ActivityShort-1 (RN UI flake) and Tag-* timing after mnemonic restore; not a fake-pass of balance checks.
Test plan