Metamask transactions not confirmed on private Ethereum networks
The issue: Transactions In MetaMask are stuck in “pending” for more than a few minutes (typically they get confirmed within a few seconds).
Why is this happening?: Ethereum has the concept of a transaction nonce. A nonce is a number that gets incremented by 1 with every new transaction. MetaMask keeps track of the nonce internally.
When switching between different private networks with the same chain id but keeping the same account (see:organizations) MetaMask uses the nonce value from the previous network. There is a good chance that this nonce value is incorrect (too low or too high) which causes the transaction to be stuck.
The Solution: Resetting the nonce value that MetaMask tracks internally. This forces Metamask to ask the network for the correct nonce so that the next transaction gets it. This can be done by clicking “ Reset Account” button in settings.