fix(ios): harden pasteIOSText against simctl pbcopy flake - #218
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-ios E2E Migration (iOS) with |
|
Re-dispatched after concurrency cancel of earlier attempts: https://github.com/synonymdev/bitkit-ios/actions/runs/34530116332 ( |
|
Validation note: first iOS Migration dispatch with only this branch (
|
|
Validation: iOS E2E Migration FULL GREEN with combined branch (includes this paste fix): https://github.com/synonymdev/bitkit-ios/actions/runs/34531814945 — mig1–4 all success. mig1 attempt1 Appium session timeout (infra); attempt2 tag sync retries; attempt3 verified. No pbcopy exit-60 in the successful path. |
Summary
pasteIOSTextfor iOS CI flake wheremobile: setPasteboardfails withxcrun simctl pbcopy … exitcode 60.typeTextif pasteboard or the Paste menu is unavailable.restoreRnWallet, wait explicitly forRestoreButton(same pattern as nativerestoreWallet) so empty/failed paste fails clearly instead of a blind tap.Does not relax balance assertions (migration_3 100k-short / zero-balance mismatches stay as product/env signals).
Evidence
bitkit-ios E2E Migration (iOS) run
34431873300(master, attempt 3), jobe2e-tests - v1.1.6 - migration_1-restore:pasteIOSText→WebDriverError: Process ended with exitcode 60 (cmd: 'xcrun simctl pbcopy …')onmobile: setPasteboardelement ("~RestoreButton") still not displayed after 60000ms(consistent with failed/empty paste)Related historical balance mismatches (not addressed here — product/env):
446184got0, then got346184(exactly 100k short)446712got346712(100k short)446712got100000Test plan
pasteIOSText(migration_1 restore or any mnemonic paste)