Troubleshooting: chain operations
This page lists common troubleshooting scenarios and solutions for chain operators.
EvmError in contract deployment
L1 smart contract deployment fails with the following error:
EvmError: Revert
Solution
The OP Stack uses deterministic smart contract deployments to guarantee that all contract addresses can be computed ahead of time based on a "salt" value that is provided at deployment time. Each OP Stack chain must have a unique salt value to ensure that the contract addresses do not collide with other OP Stack chains.
You can avoid this error by changing the salt used when deploying the L1 smart contracts.
The salt value is set by the IMPL_SALT
environment variable when deploying the contracts.
The IMPL_SALT
value must be a 32 byte hex string.
You can generate a random salt value using the following command:
export IMPL_SALT=$(openssl rand -hex 32)
Failed to find the L2 Heads to start from
op-node
fails to execute the derivation process with the following error:
WARN [02-16|21:22:02.868] Derivation process temporary error attempts=14 err="stage 0 failed resetting: temp: failed to find the L2 Heads to start from: failed to fetch L2 block by hash 0x0000000000000000000000000000000000000000000000000000000000000000: failed to determine block-hash of hash 0x0000000000000000000000000000000000000000000000000000000000000000, could not get payload: not found"
Solution
This error can occur when the data directory for op-geth
becomes corrupted (for example, as a result of a computer crash).
You will need to reinitialize the data directory.
If you are following the tutorial for Creating Your Own L2 Rollup, make sure to rerun the commands within the Initialize op-geth
section.
If you are not following the tutorial, make sure to take the following steps:
- Stop
op-node
andop-geth
. - Delete the corresponding
op-geth
data directory. - If running a Sequencer node, import the Sequencer key into the
op-geth
keychain. - Reinitialize
op-geth
with thegenesis.json
file. - Restart
op-geth
andop-node
.
Batcher unable to publish transaction
op-batcher
fails to publish transactions with the following error:
INFO [03-21|14:22:32.754] publishing transaction service=batcher txHash=2ace6d..7eb248 nonce=2516 gasTipCap=2,340,741 gasFeeCap=172,028,434,515
ERROR[03-21|14:22:32.844] unable to publish transaction service=batcher txHash=2ace6d..7eb248 nonce=2516 gasTipCap=2,340,741 gasFeeCap=172,028,434,515 err="insufficient funds for gas * price + value"
Solution
You will observe this error if the op-batcher
runs out of ETH to publish transactions to L1.
This problem can be resolved by sending additional ETH to the op-batcher
address.