Skip to content

[Bug]: Personal Sign request hangs indefinitely when MetaMask is locked #36800

@duyhieu9898

Description

@duyhieu9898

Describe the bug

When MetaMask is locked after connection, any personal_sign request (for example via MetaMask Test DApp
) will hang indefinitely — no popup, no unlock prompt, and no error message are returned to the DApp.
The request Promise remains pending forever, leaving the DApp stuck.

Expected behavior

When the user is locked, calling personal_sign should either:

Prompt the user to unlock MetaMask, or

Immediately reject the request with a clear error message (e.g. "MetaMask is locked").

Screenshots/Recordings

Image
bug.webm

Steps to reproduce

  1. Open https://metamask.github.io/test-dapp/
  2. Click use MetaMask Provider
  3. Click Connect and approve the connection in MetaMask
  4. After successful connection, lock MetaMask manually
  5. Return to the Test DApp and click Personal Sign
  6. Observe: the request remains pending with no popup or rejection

Error messages or log output

No error appears in the browser console

The ethereum.request({ method: 'personal_sign' }) Promise never resolves or rejects

Network and extension logs show no response event from MetaMask background process

Detection stage

In production (default)

Version

13.4.2

Build type

None

Browser

Brave

Operating system

Linux

Hardware wallet

No response

Additional context

eth_requestAccounts also does not trigger any popup

Severity

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    Status

    To be triaged

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions