Skip to main content
This page lists common troubleshooting scenarios and solutions for chain operators.

EvmError in contract deployment

L1 smart contract deployment fails with the following error:

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:

Failed to find the L2 Heads to start from

op-node fails to execute the derivation process with the following error:

Solution

This error can occur when the data directory for op-reth 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 Spin up sequencer section. If you are not following the tutorial, make sure to take the following steps:
  1. Stop op-node and op-reth.
  2. Delete the corresponding op-reth data directory.
  3. Reinitialize op-reth with the genesis.json file: op-reth init --chain=./genesis.json --datadir=./datadir.
  4. Restart op-reth and op-node.

Batcher unable to publish transaction

op-batcher fails to publish transactions with the following error:

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.