Metamask-extension: Version 3.6.0 on Linux/Chrome fails to send transactions on PrivateNet

Created on 28 Apr 2017  路  11Comments  路  Source: MetaMask/metamask-extension

All attempted transactions on the latest version of Metamask (3.6.0) while on a private dev chain fail with the error Invalid Sender. This was not an issue until yesterday, so I am assuming it's something with the latest commit.

When I hit Accept on the notification popup, the popup gets stuck on the loading screen and when I close the popup and reopen it, I can see a failed transaction attempt with the error.

I have tested with the main network, and the main network works fine. This is only an issue with a private dev network on localhost:8545.

The following error shows up in the background log when the notfication popup is opened, but nothing shows up specifically when the transaction is Accepted (EDIT: there is an Invalid Sender error in the background log for notification.html)

Error in response to windows.getAll: TypeError: Cannot read property 'catch' of undefined
    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:2230:13
    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:2257:9
    at Object.callback (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:2269:9)
    at NotificationManager._getWindows (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:2268:25)
    at NotificationManager._getPopup (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:2255:12)
    at NotificationManager.showPopup (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:2217:12)
    at Object.triggerUi (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:278:41)
    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:3251:19
    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:9357:16
    at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/scripts/background.js:10511:34

Most helpful comment

Yes, that solves the problem. Thank you.

All 11 comments

Pretty sure we concluded this is because your private net is using an old client version, and you don't want to update the consortium right now.

This signature issue is because your clients don't support EIP155 replay-protected tx signatures, but our client is sending that type of tx.

I've got a new branch with a feature that allows you to toggle replay protection, except for the actual functional part, because our tx signing module doesn't currently support toggling the feature.

We'll try to add this soon.

https://github.com/ethereumjs/ethereumjs-tx/issues/63

I've upgraded my geth to the latest client (1.6.0) and restarted a new chain and still have this issue. Is that to be expected?

Are you sure it's because of the client version?
I'm using geth 1.6.1 and I still got the invalid sender message in Metamask on private-net.
It works when I downgrade to Metamask 3.5.2.

$ brew list ethereum
/usr/local/Cellar/ethereum/1.6.1/bin/evm
/usr/local/Cellar/ethereum/1.6.1/bin/geth
/usr/local/Cellar/ethereum/1.6.1/bin/puppeth
/usr/local/Cellar/ethereum/1.6.1/bin/rlpdump
/usr/local/Cellar/ethereum/1.6.1/homebrew.mxcl.ethereum.plist 
$ geth version
Geth
Version: 1.6.1-stable
Git Commit: 021c3c281629baf2eae967dc2f0a7532ddfdc1fb
Architecture: amd64
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.8.1
Operating System: darwin
GOPATH=
GOROOT=/usr/local/Cellar/go/1.8.1/libexec

@szerintedmi I can confirm the same on my setup. The current version 3.6.4 returns an Invalid Sender error on all transactions but downgrading to 3.2.2 on my local copy of Metamask fixes the problem.

Any update here? I also have this error with MetaMask 3.9

Sounds like a workaround is to use command line flags to ensure your private network's chainId is the same as its networkId.

Yes, that solves the problem. Thank you.

@flyswatter how do you use command line flags to ensure your private network's chainId is the same as its networkId?

It depends on the client you're running your network on, you should refer to its documentation.

For anyone researching this issue in the future for go-ethereum (geth), the command line option is
--networkid value Network identifier (integer, 1=Frontier, 2=Morden (disused), 3=Ropsten, 4=Rinkeby) (default: 1)
This is an extract from the current documentation retrieved via # geth --help.

As far as chain ID and network ID are concerned, they seem to be the same thing. chainId is the key on the web3 transaction object and --networkid is geth's command line option.

I have setup a private network
My custom-genesis.json reads chainid=0
while the command that ran the ethereum has flag --networkid which was set to 1205

I was able to perform sendTransaction before. But since few days it isn't able to. On metamask, the error says - ethjs rpc error with payload invalid sender

What am i doing wrong? if networkid should have been equal to chain id, how was i able to send transactions before. I certainly think invalid sender has to do with some other error.

Was this page helpful?
0 / 5 - 0 ratings