In Embark, programming in Solidity.

I have a contract, which is called by another contract. The function it calls is below. Whenever I perform a write command I get a "VM Exception while processing transaction: out of gas."

But when I perform write commands in the original contract and not remote contract it doesn't happen even if the writes are much larger.

I think there is an issue I am unaware of. I can read from the contract with out a problem, I just can't write.

mapping(uint64 => IDCard) clientIds;

function createIDSpecific(uint64 clientIDi){
  if (!clientIds[clientIDi].initalized){
    clientIds[clientIDi].initalized = true;
    clientIds[clientIDi].owner = msg.sender;
    clientIds[clientIDi].ownershipTransfer.transfered = true;

The function work fine when I call it directly.

1 Answer 1


Try specifying the gas value by using the options object as the last parameter when calling the transaction. e.g YourContract.method(your_args, {gas: 800000})

Your Answer

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

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