gasPrice: the amount of Ether you’re willing to pay for every unit of gas, measured in Gwei (1 ETH = 1M Gwei)

Listed as gasPrice in output of eth.getTransaction("<transaction_hash>")

Causes

“Gas provided” for transaction is not high enough to cover the gas needed to execute the transaction. Error message: intrinsic gas too low. See Fix #1

The from account does not have enough Ether to execute transaction. This will only occur if the gasPrice for the transaction is set to some value other than the default 0. Error message: insufficient funds for gas * price + value. See Fix #2

Kaleido genesis block is not configured for latest EVM settings. The hard fork implemented by EIP150 was not used by Kaleido release versions <0.1.12. This may cause an “out-of-gas” error when a contract that calls methods from other contracts is compiled with Solidity versions >0.4.18. See Fix #4 (recommended). Alternatively, can use Fix #5 or Fix #6 as work-arounds.

In Geth if a require call fails in a called smart contract, the error is reported as “out-of-gas” (rather than “execution reverted”, or a detailed reason for the require failing).

Potential fixes

Using kaleido-go: run your transaction with the -E (estimate gas) flag to get an idea of how much the transaction should cost. Then, verify that you are providing at least that much gas when sending the actual transaction. The default gas provided with kaleido-go is 1,000,000, but is configurable using the -g flag. Execute the following commands from a terminal window after following the kaleido-go installation guide. This will output the estimated gas for that transaction.

Provide the from account parameter with more Ether so that it can afford to fund the transaction. This can be accomplished by using the Ether Pool service inside the Kaleido environment console. Ensure that the gas versus gasPrice ratio is large enough.

Fix smart contract source code to remove unbounded processing.

Create a new Kaleido environment with the latest release. Due to the immutable nature of blockchains, the genesis block cannot be reconfigured for a pre-existing environment so the user will have to create a brand new environment to get the latest genesis block configuration.

Revert back to solc (Solidity compiler) v0.4.18. Solc v0.4.21-24 have produced errors for the same cross-contract method calls that work error-free in v0.4.18 if the Kaleido environment was created using Kaleido release version <v0.1.12. Make sure that the .sol files specify the correct compiler version: