MetaMask / MetaMask/metamask-mobile

(mob) [Enhancement]: QR Code Interface for Offline Signing Disappears Permanently, Forcing Restart

Open
#15,430 1 comment 0 reactions 0 assignees View on GitHub
external-contributor INVALID-ISSUE-TEMPLATE mobile team-accounts-framework type-enhancement
Dominant language
TypeScript
Stars
3k
Forks
1.7k
Avg merge
1d 14h
Merged PRs (30d)
669

Description

**Describe the bug**

When performing offline signing with QR code, the interface containing the QR code must remain open until the signing is complete. If the interface closes (due to time-out or manual closure), there is no way to retrieve the signed data, requiring a full MetaMask restart to re-initiate the signing process. This creates friction in offline signing workflows.

**Steps to reproduce**

1. Initiate an offline signing process that generates a QR code interface

2. Let the QR code interface close automatically (wait) or manually close it

3. Complete the offline signing on the air-gapped device

4. Attempt to retrieve the signed transaction via the original QR code interface

**Error messages or log output**

```shell
Expected Result:

A mechanism to recover/reopen the QR code interface after closure

Persistent session for ongoing signing processes

"Get Signature" functionality remains accessible until process completion

Actual Result:

Once QR interface closes, the signing context is permanently lost

No UI elements or methods to retrieve the signed data

Must restart MetaMask and redo entire signing process
```

**Detection stage**

In production (default)

**Version**

v7.45.2(1810)

**Build type**

None

**Device**

google pixle 8

**Operating system**

Android

**Severity**

This issue significantly impacts usability for air-gapped setups where signing processes may take extended time. The current workflow assumes continuous interaction which isn't always practical for offline devices.

Contributor guide

Open the contributing guide

Research direction

The issue does not identify a source file, test, or entry point. Start by reproducing the offline-signing flow on Android v7.45.2, then trace what happens when the QR interface closes by timeout or manually. Done means the signing session remains recoverable and the signed transaction can be retrieved without restarting MetaMask.

Written by the indexing model from the issue text.

Assessment

Tech stack
react-native, typescript
Domain
blockchain, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.