I have seen many posts around the division operation in Solidity e.g. Cant' do any integer division. Firstly, the error I am facing is different. Secondly, I am ensuring that, all numbers in division operation are set to uint256. So, I am not sure, what this error means and how to fix this.

This is with Ethereum testrpc.

Solidity function

function getQuotient() returns (uint256) {

    uint256 numMembers = uint256(someStruct.someArray.length);
    uint256 sampleSum = someSameplSum; //set to uint256 elsewhere
    uint256 avgNum = sampleSum / numMembers;

    return avgNum;


Error: Error: VM Exception while executing eth_call: invalid opcode
    at /home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:59368:17
    at /home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:69306:5
    at /home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:11335:9
    at /home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:7895:16
    at replenish (/home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:8415:25)
    at iterateeCallback (/home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:8405:17)
    at /home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:8380:16
    at /home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:11332:13
    at /home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:69302:9
    at /home/ubuntu/node_modules/ethereumjs-testrpc/build/cli.node.js:63982:7
    at Object.InvalidResponse (/Users/nsubrahm/node_modules/web3/lib/web3/errors.js:38:16)
    at /Users/nsubrahm/node_modules/web3/lib/web3/requestmanager.js:86:36
  • 1
    If numMembers is zero, the division will throw an exception. Exceptions are reported as invalid opcode.
    – Ismael
    Aug 27, 2017 at 9:43
  • I think, I am running into that case numMembers=0. Thanks for the hint! Aug 27, 2017 at 10:36


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.