2

I recently sent a tx with nonce=0 and 20Gwei per gas fee. Now since the gas price never dropped so low, my tx is stuck for days.

I don't care about the stuck tx, but I want to send another tx from the same account. When I tried to send it, I got an error message in metamask:

error: replacement transaction underpriced

Following the advice given here: error: replacement transaction underpriced I manually incremented the nonce on the second transaction (nonce=1) and was able to submit it. Now if I check the transactions on Etherscan, it tells me:

There is a Pending txn with a lower account nonce. This txn can only be executed after confirmation of the earlier

This suggests that the first transaction must go through before the second can. If true, this defeats the purpose of incrementing the nonce. Do you know if this is correct? Do I have to get the first transaction out before the second can be confirmed?

If the first transaction has to go through before the second, then my only option is to replace it. I tried this in metamask aswell by sending a tx with value 0 and a very high Max priority fee and Max fee. However I am unable to replace the first transaction as I keep getting:

error: replacement transaction underpriced

Any ideas what I could do? Help is very much appreciated.

1
  • 1
    this is a metamask issue. Try MEW.
    – Dysto
    Commented Sep 9, 2021 at 5:39

2 Answers 2

2

here is the work around (https://www.myetherwallet.com)

  • link the web3 metamask extension to the MEW website wallet...
  • then of course set the same nonce and a higher gas.
  • this will allow the transaction to enter the mempool with a duplicate nonce...
  • then you just wait for it to be picked up by node.

this just happened to me and took me 3 days to figure out. it's not an issue with simply following the protol of using the same nonce with higher gas, but rather it seems like a bug within metamask itself.

metamask definitely needs to fix this bug, as it effectively locks your wallet, preventing you from doing anything at all : /

thank you @dysto (above)

1

Unprocessed transactions are droppped in 3 hours, so you shouldn't get this error unless the Node running geth has been customized differently.

Lifetime: 3 * time.Hour,

This suggests that the first transaction must go through before the second can

this is exactly how it works

The error replacement transaction underpriced is sent to you because you didn't increase gas price. If you want to replace an existing transaction you need to give it a so called "price bump", price bump is 10% of previous gas price:

PriceBump:  10,

Sources: https://github.com/ethereum/go-ethereum/blob/5cee33eb7234756939b1ef8b23e990b672a03dff/core/tx_pool.go#L163

7
  • I sent the transaction using Metamask, does the same 3h rule apply? I can still see my transaction as pending on etherscan even after 24+ hours but the "pending transaction" page on etherscan only shows txs up to 2hours etherscan.io/txsPending
    – Nik
    Commented Aug 25, 2021 at 10:15
  • regarding the replacement - as I stated before, I set a very high Max priority fee and Max fee and still ran into this issue. I tried from three different clients and in the end one of them managed to do it.
    – Nik
    Commented Aug 25, 2021 at 10:19
  • 1
    @Nik there is somewhere in Metamask, an option to reset account, and it is going to clear this pending tx
    – Nulik
    Commented Aug 25, 2021 at 13:17
  • tried it but it doesn't change anything. I still get the same "replacement transaction underpriced" error even though I assign a higher max fee
    – Nik
    Commented Aug 28, 2021 at 8:44
  • sorry I don't fually understand how the system works. If I want to replace a pending tx with another tx with the same nonce, do I have to increase the "max priority fee" or the "max fee" or both? And if yes, by how much each?
    – Nik
    Commented Aug 28, 2021 at 9:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.