MetaMask / MetaMask/metamask-mobile

[Bug]: Queuing Transactions - tx's keep accumulating and the tx hex data keeps changing, looping over the different tx's queued

Open
#12,995 2 comments 0 reactions 0 assignees View on GitHub
Bugs---Low-Priority INVALID-ISSUE-TEMPLATE Sev3-low team-confirmations type-bug
Dominant language
TypeScript
Stars
3k
Forks
1.7k
Avg merge
1d 14h
Merged PRs (30d)
669

Description

**Describe the bug**

When a network is down and you trigger Send/Contract Interactions/Deployments requests, those keep accumulating in the background. Once the network is up again, you'll see each request appearing in the UI, and then closed and the subsequent request is open.
Only the last one remains open, and rejecting/accepting it terminates the flow.
If you open the hex data for the last one, you'll see how the hex data keeps changing iterating over the pending contract deployments you triggered.

**Expected behavior**

Given that the Mobile doesn't support queuing transactions, I think we should only see the last request, and the rest should be dropped. Hex data should not change, and correspond just to the remaining active pending transaction. The correct transaction type should be displayed in the header pill.

**Screenshots/Recordings**

See hex data changing

https://github.com/user-attachments/assets/a4cf41a5-91a0-4a43-bfcc-ae760886f924

See complete flow

https://github.com/user-attachments/assets/17de5de8-0341-492d-8e32-1e4bc28ffa39

**Steps to reproduce**

1. Enable Show hex data from settings
2. Start Ganache
3. Import Ganache network in mobile
4. Import a Ganache account with balance
5. Go to the test dapp
6. Connect with ganache and the imported account
7. Kill ganache server
8. Trigger several contract deployment
9. Re-start the ganache server with the same seed `ganache --wallet.seed="YOUR_SRP"` so you still have the account with balance
10. See how all the tx from step 7 keep popping up and disappearing, only the last one remaining
11. Open Hex Data
12. See how the hex data keeps looping from the different contract deployments you had pending. This never stops and eth_gas RPC requests are sent non-stop
13. See UI doesn't display "Contract Deployment" just "Confirm" as tx type
14. Confirm the tx
15. A contract deployment is successfully made -- it can be any of the ones you had pending

**Error messages or log output**

```shell

```

**Detection stage**

In production (default)

**Version**

7.37.1

**Build type**

None

**Device**

Pixel 6

**Operating system**

Android

Contributor guide

Open the contributing guide

Research direction

Reproduce the issue using the listed Ganache, mobile, test dapp, and queued contract-deployment steps, then inspect the transaction confirmation flow, queued requests, hex-data display, and transaction-type header. Done means only the final request remains, its hex data stays stable, the correct transaction type is shown, and repeated eth_gas requests stop.

Written by the indexing model from the issue text.

Assessment

Tech stack
react-native, typescript
Domain
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.