MetaMask / MetaMask/metamask-mobile
(mob) [Enhancement]: QR Code Interface for Offline Signing Disappears Permanently, Forcing Restart
- 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
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