ci(walletkit): revert applinks ?mode=developer patch for Maestro iOS#527
Conversation
Drop the step that appended `?mode=developer` to each associated domain in the entitlements on the Maestro runner. Investigating the recurring Universal Link flake (E2E run 27032183526) showed dev mode does not fix the race and arguably makes it worse. With `?mode=developer`, swcd never schedules a far-future recheck — the entry's recheck date is pinned to the zero date, so it is always "overdue" and is re-fetched roughly every minute. Each re-fetch transiently clears the verified patterns and drops the verdict to `unspecified`. The failing deeplink tap landed in one of these windows: swcd returned `sa = unspecified` / "did not have any patterns to match against" for pay.walletconnect.com, so iOS found no app claiming the URL and opened Safari → `pay-merchant-info` never rendered. Reverting to the normal CDN route gives a stable verdict (~days) once verified, removing the oscillation. The CDN serves the AASA for all four domains. Note: this alone does not fully fix the flake. Maestro reinstalls the app on every flow (clearState on iOS = uninstall+reinstall — 10 cycles in this run), so each flow re-registers the association and re-verifies right before its tap. The durable fix (retry the openLink until the wallet screen appears) belongs in the deeplink flow in the WalletConnect/actions repo and will be handled there. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ignaciosantise's task in 1m 4s —— View job Review
✅ No issues found The change is a clean, well-reasoned revert. Key observations:
The PR description's syslog analysis ( |
…try) Re-pin maestro/pay-tests and maestro/setup to WalletConnect/actions PR #93 (fix/maestro-ios-universal-link-retry, 6e17edb), which retries the iOS universal-link open until pay-merchant-info is visible — the flow-side half of the Universal Link flake fix that pairs with reverting ?mode=developer. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
WalletConnect/actions PR #93 merged; bump maestro/pay-tests and maestro/setup from the PR-branch SHA to master (3a145ab). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Removes the iOS Maestro CI-time entitlements patch that appended ?mode=developer to applinks: associated domains, reverting Universal Links back to the normal AASA/CDN verification path to reduce flaky Universal Link E2E behavior.
Changes:
- Deleted the CI step that patched
?mode=developerintoRNWeb3Wallet.entitlementsduring Maestro iOS builds. - Updated the pinned
WalletConnect/actionsSHAs used for Maestro pay test flows + setup. - Adjusted nearby simulator reset comment wording to remove dev-mode-specific phrasing.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| sudo udevadm trigger --name-match=kvm | ||
|
|
||
| # --- Common: Maestro setup + run --- | ||
| # Pinned to WalletConnect/actions master |
What
Removes the CI step that patched
?mode=developeronto eachapplinks:associated domain in the wallet's entitlements on the Maestro iOS runner.Why
The Universal Link E2E test ("WalletConnect Pay - Single Option No KYC (Universal Link)") keeps flaking — it opens Safari instead of the wallet. Digging into the
swcdsyslog from run 27032183526:sa = approved, patternCount = 1). Entitlements, domains, and the AASA file are all fine.?mode=developertellsswcdnever to cache/trust the AASA. Its recheck date is pinned to the zero date (Sat Dec 30 … 0000), i.e. permanently overdue — so it re-fetches ~every minute (13 fetches/domain in a 10-min run). Apple's own non-dev entries, by contrast, recheck ~5 days out.sa = unspecifiedwith no patterns. The failing tap (18:38:23) landed in exactly such a window:pay-merchant-infonever appears → assertion fails.So dev mode doesn't fix the race; it converts a one-time post-install window into a perpetual one. Reverting to the normal CDN route gives a stable verdict once verified (the CDN serves the AASA for all four domains).
This does not fully fix the flake on its own
Maestro reinstalls the app on every flow (
clearStateon iOS = uninstall+reinstall — 10 cycles in this run). Each reinstall re-registers the association and triggers a fresh verification right before that flow's tap, so a per-flow race remains in both CDN and dev mode. The deeplink flow tapped ~40s after its own reinstall (18:37:43 → 18:38:23).The durable fix — retry the
openLinkuntil the wallet screen appears — has to live in the deeplink flow yaml, which is in theWalletConnect/actionsrepo. That will be handled separately there.Draft because
This is the first half of a two-part fix; pairing it with the flow-side retry in the actions repo. Opening as draft for visibility / discussion while that lands.
🤖 Generated with Claude Code