Walletconnect on mobile not authenticating user

Hi,

I’m attempting to authenticate users on mobile using Walletconnect but am being thrown an error at different points in the process.

Upon the first attempt, clicking the connect button is successfully bringing-up the Walletconnect modal, giving Metamask as an option and taking me to the Metamask app to sign the request. However, once this request is signed and I’m redirected back to the site, the user is stuck authenticating.

Here is my code -

  const walletConnectAuth = async () => {
    if (!isAuthenticated) {
      try {
        await authenticate({
          provider: "walletconnect",
          mobileLinks: ["metamask"],
        });
        ToastAlert.fire({
          icon: "success",
          title: "Wallet Authenticated",
        });
      } catch (error) {
        let svrErr = {
          code: error.code,
          message: error.message,
        };
        setServerErrors(svrErr);
      }
    }
  };

The error -
PollingBlockTracker - encountered an error while attempting to update latest block:undefined.

A separate issue is that on android devices there are no wallets available within Walletconnect. Instead a ‘connect’ button is provided that redirects to a blank page.

As an experiment I hosted a version of your etherium boilerplate code and Walletconnect doesn’t work on mobile there either. It takes you through the process outlined above and returns to the site unauthenticated.

Thanks in advance.

Which chain are you using in your MetaMask app and have you tried specifying a chainId? Which versions are you using (Moralis / react-moralis / @walletconnect/web3-provider)?

I am using Ethereum Mainnet in my app and have tried specifying the chainID in the functions with no effect i.e. chainId : 1

Moralis - 1.11.0
react-moralis - 1.4.0
@walletconnect/web3provider - 1.8.0

Can you try authenticating with this demo - on Android, after clicking “Connect” the user chooses the wallet if there’s no default one (MetaMask, Trust Wallet, etc.), you connect the site, return back to your wallet to sign, and then return back to the demo.

Using that demo I can confirm that Walletconnect works as intended on IOS. (I’ve tried two different iPhones) the UX is a little weird as it always takes you to the app store page for Metamask but not a breaking issue.
On android it makes you sign the message request twice before it will register. For clarity, this is definitely two signature requests and not a connection request then signature request. Signing this second request then updates then authenticates the user within the app i.e. shows the wallet address in the button.

This is being discussed on Discord where multiple members of this team are more active.