Ganache-cli: Tx doesn't have correct nonce error

Created on 27 Jun 2017  路  2Comments  路  Source: trufflesuite/ganache-cli

Expected Behavior


I should be able to reliably send transactions to testrpc from web3

Current Behavior


When I load my dapp, the first time I try and send a transaction via web3, I get a nonce mismatch error. Then I reload the page and it works as expected. It seems to fail on every other reload. Using a mainnet rpc server, this does not happen.

I am using the new db functionality of testrpc & unlocking 2 accounts on startup

js console shows:

error happened... Error: Error: the tx doesn't have the correct nonce. account has nonce of: 15 tx has nonce of: 16
at runCall (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/lib/runTx.js:101:10)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:3830:24
at replenish (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:946:17)
at iterateeCallback (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:931:17)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:906:16
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:3835:13
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/once.js:12:16
at replenish (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/eachOfLimit.js:59:25)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/eachOfLimit.js:68:9
at eachLimit (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/eachLimit.js:43:36)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/doLimit.js:9:16
at VM.AsyncEventEmitter.emit (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/lib/AsyncEventEmitter.js:42:3)
at runCall (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/lib/runTx.js:101:10)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:3830:24
at replenish (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:946:17)
at iterateeCallback (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:931:17)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:906:16
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/ethereumjs-vm/node_modules/async/dist/async.js:3835:13
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/once.js:12:16
at replenish (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/eachOfLimit.js:59:25)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/eachOfLimit.js:68:9
at eachLimit (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/eachLimit.js:43:36)
at /Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/node_modules/async/internal/doLimit.js:9:16
at VM.AsyncEventEmitter.emit (/Users/rjewing/.nvm/versions/node/v6.3.1/lib/node_modules/ethereumjs-testrpc/node_modules/async-eventemitter/lib/AsyncEventEmitter.js:42:3)
at Object.InvalidResponse (chrome-extension://himekenlppkgeaoeddcliojfddemadig/web3/inpage.js:8578:16)
at chrome-extension://himekenlppkgeaoeddcliojfddemadig/web3/inpage.js:18553:36
at XMLHttpRequest.request.onreadystatechange (chrome-extension://himekenlppkgeaoeddcliojfddemadig/web3/inpage.js:17339:13)

Possible Solution


Steps to Reproduce (for bugs)



1.
2.
3.
4.

Context


This is fairly annoying when trying to test a dapp in a local env.

Your Environment

  • Version used:
  • Environment name and version (e.g. PHP 5.4 on nginx 1.9.1):
  • Server type and version:
  • Operating System and version: osx 10.12.5
  • Link to your project:

Most helpful comment

Same problem. I work with metamask in the client...

All 2 comments

Same problem. I work with metamask in the client...

@rodney757 & @stefanhuber you guys likely found MetaMask/metamask-extension#1999. MetaMask even added a helpful "reset account" button to their settings page so you can work around this problem.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

zweicoder picture zweicoder  路  3Comments

lastperson picture lastperson  路  4Comments

kumavis picture kumavis  路  3Comments

gskerry picture gskerry  路  3Comments

xavierlepretre picture xavierlepretre  路  5Comments