fix(wallet): the bare-scheme retry does not rescue a warm wallet either — say so - #35
Merged
Merged
Conversation
…er -- say so #33 shipped a guess. When the request-scoped link had already been tried and produced nothing, the next tap sent a bare `metamask://` instead, on the theory that `.../wc?requestId=` was the part that wedged MetaMask -- that it put the wallet into a route waiting for a request to arrive over its own Android-suspended socket, and that asking only for the app would sidestep it. Tested on the reporter's phone: wrong. A warm MetaMask sits on its splash screen for the bare scheme exactly as it does for the request link. Both retries were made without force-quitting, and both hung; killing MetaMask and tapping again went through, as before. The wallet deadlocks on being resumed by a deep link at all, and there is no URL a web page can produce that avoids it. So the link stops changing. Always the request-scoped one, which is the right link for the case that does work -- a cold wallet, where it surfaces THIS prompt rather than the home screen -- and one less moving part on the path that is the user's only way through. The hint goes back to leading with the force-quit, and now says outright that tapping again without closing the wallet first will not help. #33 reordered it on the assumption that the cheap step worked; it does not, and a hint that offers a step that fails first is worse than no hint. Kept from #33, both still correct: the interceptor no longer swallows our own app-switch, and coming back to the page with the request unanswered shows the recovery hint at once instead of waiting out a 12s timer that ran while the user was inside the wallet. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013BpqXrkEPA9odTyRdK5Mnx
ehsan6sha
added a commit
to functionland/docs
that referenced
this pull request
Sep 4, 2026
…178) #177 reordered the stuck-wallet advice to lead with "tap Open wallet to approve again", on the theory -- shipped alongside it in functionland/fxblox-web#33 -- that a second tap opened the wallet a different way and would usually get past the splash screen. Tested on a phone since: it does not. A warm MetaMask hangs on the retry exactly as it hangs on the first attempt. Only closing MetaMask from recents and then tapping clears it, which is what these pages said before #177 and what functionland/fxblox-web#35 puts back in the app's own hint. So the force-quit leads again, and each place now says plainly that tapping without closing the wallet first returns you to the same stuck screen -- the thing a user will otherwise try twice before giving up. Also says where the fault is: inside the wallet app, where a web page cannot reach. The "give the page a few seconds when you come back" guidance from #177 is untouched -- that part was about our own reconnect and is still right. Claude-Session: https://claude.ai/code/session_013BpqXrkEPA9odTyRdK5Mnx Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#33 shipped a guess, and the guess was wrong.
When the request-scoped link had already been tried and produced nothing, the next tap sent a bare
metamask://instead — on the theory that…/wc?requestId=was the part that wedged MetaMask: that it put the wallet into a route waiting for a request to arrive over its own Android-suspended socket, and that asking only for the app would sidestep it.Tested on the reporter's phone: it does not. A warm MetaMask sits on its splash screen for the bare scheme exactly as it does for the request link. Both retries were made without force-quitting, and both hung; killing MetaMask and tapping again went through, as it always has. The wallet deadlocks on being resumed by a deep link at all, and there is no URL a web page can produce that avoids it.
What changes
What stays from #33
Both still correct, and untouched:
Testing
npm test --workspaces943 passing,npm run typecheck --workspacesandnpm run lintclean. The test that pinned the bare-scheme retry now pins the request link, with the device result written into the comment so the next person does not re-derive the same dead end.🤖 Generated with Claude Code
https://claude.ai/code/session_013BpqXrkEPA9odTyRdK5Mnx