You just started your local Ganache blockchain and deployed some smart contracts. Everything worked a week ago, and now when you want to try your freshly developed and deployed smart contract, you encounter this error: TX doesn’t have the correct nonce.
Good news! It’s not that hard to solve. It was a pain before, but not anymore since Metamask v3.14.1.
To solve this error, you have to reset your Metamask account so that it can re-sync with your local blockchain. To do that, go to Settings > Advanced > Reset Account
.
Retry what you were doing, and the bug should be gone!
What happens under the hood: Metamask is caching the Tx of your local Ganache blockchain. The problem that can arise is that you restart your local Ganache multiple times and lose the Tx history so that it will resume at 1 on Ganache. However, Metamask is caching this info and will send a specific Tx number that will not match your local blockchain. The call from Metamask will drop out because there is a mismatch.