Skip to content

Bug Report - Message Signing Issue After Mobile Wallet Connection #56

Description

@donnagifts

Hello Metamask team,

We have identified a significant issue regarding message signing immediately after wallet connection, primarily affecting Android mobile devices.

Description:

  • Expected Behavior: Users should be able to sign messages as soon as the wallet enters the connected state
  • Current Behavior: Although the isConnected property is correctly set to "true", calling signMessage doesn't trigger any prompt in the wallet. No errors are displayed in the browser console.

Technical Details:

  • The issue is intermittent and varies across different Android device models
  • Environment: Latest Chrome, Latest Metamask
  • Packages: appkit 1.6.3, @wagmi/core 2.x
  • Node.js: 22.12.0

Reproduction:

Additional Context:
The issue has been documented in this GitHub issue: reown-com/appkit#3601. "Reown" is the new name of "Wallet Connect" and Appkit is the package we use in our implementation.

There appears to be a delay between the completion of the connection phase and the wallet's readiness to handle message signing operations.

Could you help us investigate this issue? We're available to provide any additional information needed.

Best regards,

Activity

  1. christopherferreira9 commented on Jan 16, 2025

    @christopherferreira9

    Hi @donnagifts !
    From the example you provided it seems that you're trying to trigger a signing request programmatically as soon as the user connects his wallet. Because the wallet send the user back on android to the dapp after connecting you end up not seeing the signing prompt appear in MetaMask even though it's there to be displayed.
    From the video above you'll see that after connecting I manually switch to the MetaMask wallet and the signing request is there and because I manually switching from the dapp to the wallet the goBack feature ends up directing me to my homescreen instead of the dapp.
    Generally speaking, programmatically triggering a deeplink is not advisable as some OSs' will flag this and prevent the user to be directed to the Wallet even though the request comes through.
    Keep in mind that according to the example you provided you're listening to the whole modal state and thus, simply opening the modal will trigger this modal + prompt a signing request.

    It is strongly advised that any request that should direct the user to the wallet is tied to a user action such a tap on a button.

    Screen.Recording.2025-01-16.at.1.33.47.PM.mov
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions