Problem Description
MetaMask enters an infinite retransmission loop when transactions have insufficient gas fees, causing repeated "already known" errors in the node logs.
Root Cause Analysis
What happens:
- MetaMask sends transaction with low gas fees (e.g., 3.5 gwei)
- Tx Firewall accepts transaction in interactive mode window
- Local node accepts the transaction into its local transaction pool
- Network rejects the transaction due to insufficient fees (network requires ~755 gwei)
- Transaction gets stuck - exists in local node but not in network mempool
- MetaMask polls
eth_getTransactionReceipt → receives null
- MetaMask interprets
null as "lost transaction"
- MetaMask retransmits the same transaction
- Tx firewall shows the same transaction to verify by user
- Node responds "already known" (transaction already exists locally)
- Loop continues indefinitely
Transaction State Mismatch:
# Local node perspective:
eth.getTransaction("0x...") → Returns transaction object (exists locally)
# Network perspective:
eth.pendingTransactions → [] (not in network mempool due to low fees)
# MetaMask perspective:
eth_getTransactionReceipt → null (not mined yet)
Problem Description
MetaMask enters an infinite retransmission loop when transactions have insufficient gas fees, causing repeated "already known" errors in the node logs.
Root Cause Analysis
What happens:
eth_getTransactionReceipt→ receivesnullnullas "lost transaction"Transaction State Mismatch: