401 Unauthorized: Signature Invalid
If you see a log that looks like this inop-node:
op-node is unable to authenticate with execution client’s authenticated RPC using the JWT secret.
Solution
- Check that the JWT secret is correct in both services.
- Check that
execution client’s authenticated RPC is enabled, and that the URL is correct.
Failed to Load P2P Config
If you see a log that looks like this inop-node:
op-node lacks write access to the P2P discovery or peerstore directories.
Solution
- Make sure that the
op-nodehas write access to the P2P directory. By default, this is/p2p. - Set the P2P directory to somewhere the
op-nodecan access via the--p2p.discovery.pathand--p2p.peerstore.pathparameters. - Set the discovery path to
memoryto disable persistence via the--p2p.discovery.pathand--p2p.peerstore.pathparameters.
Wrong Chain
If you see a log that looks like this inop-node:
op-node is pointing to the wrong chain.
Solution
- Verify that the
op-node’s L1 URL is pointing to the correct L1 for the given network. - Verify that the
op-node’s rollup config/--networkparameter is set to the correct network. - Verify that the
op-node’s L2 URL is pointing to the correct instance ofexecution client, and thatexecution clientis properly initialized for the given network.
Error: eth_sendRawTransaction Does Not Exist
If an RPC call to your execution client (op-reth, Nethermind, etc.) returns a response like:
-32601 JSON-RPC error means the sequencer endpoint you configured does not expose eth_sendRawTransaction. The request path looks like:
op-node only exposes rollup-specific RPC methods—there is no eth_* namespace—it cannot accept raw transaction submissions. When your execution client forwards the transaction to an op-node URL it immediately fails with -32601.
This situation almost always happens when op-reth’s --rollup.sequencer (aliases --rollup.sequencer-http, --rollup.sequencer-ws) is misconfigured to point at your own op-node rather than the chain’s actual sequencer.
Solution
- Confirm op-reth exposes the
ethnamespace on its HTTP API (the standard set is--http.api=eth,net,web3,debug). Ifethis disabled, raw transactions will be rejected before they reach the sequencer. - Inspect the CLI flags and environment variables of every component that talks to the sequencer (
op-node,op-reth,op-batcher,op-proposer, scripts). The--rollup.sequencerflag must point to the chain’s public sequencer endpoint (for example,https://mainnet-sequencer.optimism.io), not to your ownop-node. - For user-deployed L2s where you run the sequencer yourself, leave
--rollup.sequencerunset so op-reth forwards locally and never falls back to anop-nodeendpoint. - Restart the affected services after correcting the flag so they pick up the new endpoint. The error should disappear as soon as they can reach the proper sequencer RPC.
Unclean Shutdowns
An unclean shutdown occurs when the execution client stops without completing its normal shutdown procedure — for example, aSIGKILL, a power loss, or a container killed past its grace period. The impact depends on which database backend your EL uses.
To minimize risk, always shut down gracefully: Ctrl-C for foreground processes, docker stop -t 300 <container> for Docker, or systemctl stop for systemd (override the default 90s timeout if your EL has a large in-memory write to flush).
For op-reth
op-reth uses MDBX, which is crash-safe by design. After an unclean shutdown the node typically restarts cleanly with no operator intervention required. If startup fails after an unclean shutdown, options include:-
Stage unwind — roll back to the last consistent stage checkpoint:
- Full resync — as a last resort, delete the datadir and resync from genesis or a snapshot.
For Nethermind
Unclean shutdowns inNethermind can lead to database corruption. This typically happens when:
- The node experiences hardware failures (disk failures, memory errors, overheating)
- Power cuts cause abrupt shutdowns
- The process is terminated without proper cleanup
-
Lock File Issues
If
Nethermindcomplains about lock files after an unclean shutdown, run: -
Block Checksum Mismatch
If you encounter block checksum mismatch errors, you can enable direct I/O:
Note: This may impact performance.
-
Complete Resync
In cases of severe corruption, a full resync is recommended: