I'm using MetaMask with an app I'm developing, and previously working functions are now returning a quite ferocious error.

This error has been duplicated on a number of functions in the platform, so I won't provide specific code to any given function. All of them are web3 functions that submit transactions - functions that only read data from the chain work fine.

I also checked just sending Rinkeby ETH to another account, and that also failed.

Here's the error:

Error: [ethjs-query] while formatting outputs from RPC 
    "value":{"code":-32603,"message":"Internal JSON-RPC error.",
    "data":{"code":-32000,"message":"invalid sender"},

As per this I tried resetting the account in MetaMask, but it did not help.

What causes this error? I see that it's saying the sender is invalid, but can't figure out what that means in this context. Thoughts?

Update: In response to @goodvibration's request for code, I will put some code from one of the functions that failed. As stated above, many functions failed, in fact any function writing to the chain, and not only functions failed, a simple send from inside MetaMask (sending Rinkeby Ether from one address to another) also failed, clearly demonstrating that this is not an issue with code.

Here's an example function:

const signer = props.injectedProvider.getSigner()
const contract = new ethers.Contract(process.env.CONTRACT_ADDRESS, abi, signer);
const result = await contract.updateRole(arg1, arg2, name)
        .then(() => submitted())
        .catch(e => err(e));

This is React code. The injectedProvider is an ethers.js provider passed in from higher up in the component tree as props. The contract address is stored as an env var, and functions correctly. updateRole is the name of the function being called in the target contract. submitted and err are popup notifications defined elsewhere in the code.

Even if there were to be a problem in the code, though, it would not be the (only) cause of the error mentioned above. As stated before, my rationale for this is that even simple sends inside MetaMask fail with the exact same error. Thanks!

  • All of them are web3 functions that submit transaction - can you please share the relevant code? – goodvibration Nov 3 '20 at 10:22
  • I don't see how it will help, as even simple sends inside MM fail, but I've added it. Thanks for looking! – The Renaissance Nov 3 '20 at 14:46

My situation:

I met the same error while I'm working on my project on localhost (reactjs) with local Ganache blockchain.

Reading data from chain works fine but writing data causes Metamask to show the exact same error:

Error: [ethjs-query] while formatting outputs from RPC 
    "value":{"code":-32603, ... 

enter image description here

At the same time, Metamask suggested unexpectedly high gas amount (~0.12 ETH at gas fee of 20 Gwei).

Solution that works for me:

I tried restart my Ganache blockchain, tried everything all over again by importing new account using address provided by Ganache to Metamask.

Then, everything started to work perfectly fine. The transaction is successful and it takes only 0.002412 ETH at 20 Gwei per gas fee.

My summary for you:

I know you are not developing on local blockchain but on Rinkeby network. So restarting the blockchain is not possible. What I can suggest is that this definitely is not an issue with your code, possibly some syncing issue of your Metamask to the blockchain.

Try restarting browser or even your PC. Let me know if this works. I see a lot of people are encountering this issue but there's no exact solution for it. I hope this time we will have a clear solution.

  • Thanks for your answer! Unfortunately, I do still get this issue after restarting the browser and PC. I'm still upvoting your answer since it's useful for anyone who is using a dev chain. – The Renaissance Nov 30 '20 at 7:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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