Troubleshooting Prysm
Select a configuration
- Operating system:
- Linux, MacOS, Arm64
- Windows
- Network:
- Mainnet
- Sepolia
- Holesky
Troubleshooting checklist
If you're running into unexpected outputs or errors, use the following checklist to check the status of your configuration. In many cases, this checklist will help you independently resolve your issue. If you still need help after completing this checklist, you can generate a troubleshooting report below and paste it into Discord when asking for support.
Prysmatic Labs is a small but mighty team of engineers who are working hard to support The Merge. Using this checklist is very helpful because it can reduce the time that it takes to gather information, allowing us to focus on Merge engineering and monitoring. Thank you for helping us!
Troubleshooting scenarios and solutions
Common troubleshooting scenarios and solutions are detailed below.
Troubleshooting your validator node
Scenario | Solution |
---|---|
You see Waiting for keymanager to initialize validator client with web UI... | You'll usually see this message when your beacon node is trying to interact with a validator client instance before the beacon node is fully synced. This is a known limitation. When your beacon node is finished syncing, this message should go away. Visit Check Node and Validator Status to learn how to check the sync status of your beacon node. |
Everything seems fine, but your validator balance is going down. | If your validator client is running fine without errors but you're seeing your validator balance decrease, your beacon node may be experiencing issues with connectivity, stability, or synchronization. Check your beacon node logs to see if there are any errors or crashes. |
Can't import accounts, stuck in a loop. You see Could not import accounts: could not write accounts: file already exists without proper 0600 permissions | This usually happens when the account you're using doesn't have permission to read and write to the target directory. See this GitHub issue for a workaround. |
level=warning msg="Failed to update proposer settings" error="could not submit signed registrations to beacon node: rpc error: code = InvalidArgument desc = Could not register block builder: could not register validator(s): unsupported error code: 502: did not receive 200 response from API: Builder API validator registration unsuccessful" prefix=validator slot=5069888 | Possibly an issue with mev-boost/relay if you constantly see this. |
Could not determine if beacon chain started: could not setup beacon chain ChainStart streaming client: rpc error: code = Unavailable desc = connection closed: could not connect" prefix=validator | Your validator is not connected to your beacon node properly. |
Could not request attestation to sign at slot error=rpc error: code = Unavailable desc = the node is currently optimistic and cannot serve validators | This usually means that your execution client isn't yet synchronized. Visit Check Node and Validator Status. |
Troubleshooting your beacon node
Scenario | Solution |
---|---|
Waiting for peers / peer disconnected / no active peers: Waiting for enough suitable peers before syncing... msg="Peer disconnected" active=0 | Peers will continuously disconnect and reconnect, so don't worry about Peer disconnected messages. If your beacon node is struggling to find peers:
|
Beacon node is stuck during initial sync. | If your node seems stuck (either doing nothing, or stuck in a loop) while syncing, a restart will usually resolve the problem. If you're on Windows, try selecting your console output window and hitting ENTER - this can "unpause" a paused console output stream. |
Node is currently optimistic and cannot serve validators: level=error msg="Could not request attestation to sign at slot" error="rpc error: code = Unavailable desc = the node is currently optimistic and cannot serve validators" prefix=validator pubKey=0x01234 slot=65740 | This usually means that your execution client isn't yet synchronized. Visit Check Node and Validator Status to learn how to check the sync status of your execution client. |
Could not read JWT secret , Could not access JWT secret | You, your terminal window, or the script you're using may not have the permissions required in order to read or write your JWT token. Try elevating privileges or running as Administrator (if you're on Windows). |
could not get ancestor state: failed to unmarshal encoding: incorrect size | This usually indicates that your beacon node's data has become corrupt. Try restarting your beacon node with a new or cleared data directory. Consider using Checkpoint Sync to reduce sync time. |
could not process block: could not process block header: parent root 0x... does not match the latest block header signing root in state | This error is being actively investigated. See this open issue for more information. |
Could not check configuration values between execution and consensus client" error="method not found" prefix=powchain | Geth users see this error when they're using an old Geth binary. Make sure you're using the latest stable release of Geth. |
could not check configuration values between execution and consensus client error: timeout from http.Client 403 signature invalid Could not connect to execution client endpoint" error="could not make initial request to verify execution chain ID: 401 Unauthorized level=error msg="Could not connect to execution client endpoint" error="could not make initial request to verify execution chain ID: Post "http://localhost:8551/": dial tcp 127.0.0.1:8551: connect: connection refused" prefix=powchain warning msg="Batch is not processed" error="could not process block in batch: timeout from http.Client: received an undefined ee error. warning msg="Batch is not processed" error="could not process block in batch: got an unexpected error in JSON-RPC response: 403 Forbidden: signature is invalid | These errors are usually caused by invalid JWT configuration. If you're using HTTP-JWT to connect your EN-BN, ensure that both EN and BN are configured to use the same JWT secret. Different files are OK (eg when your EN and BN are on different machines), but the secret within each JWT file should be the same. See Configure JWT authentication for more information. |
weak-subjectivity-checkpoint not provided. Prysm recommends providing a weak subjectivity checkpoint for nodes synced from genesis | You can safely ignore this warning - it will be removed in an upcoming Prysm release. See How to configure Checkpoint Sync if you'd like to learn more about checkpoint sync. |
beacon node doesn't have a parent in db with root... | If you see blocks advancing, then this can usually be ignored. If you don't see blocks advancing, there are likely other warnings and/or errors that will help you troubleshoot. |
ERROR sync: Could not handle p2p pubsub error=could not process block: could not validate new payload: timeout from http.Client: received an undefined ee error topic=/eth2/4a26c58b/beacon_block/ssz_snappy | Your execution client is taking too long to process a payload, if you continuously see this error it might be an indication that your execution client is stressed. |
If you see: ERROR main: could not get ancestor state: failed to retrieve state from db: failed to unmarshal encoding: incorrect size | Your db might be corrupted |
ERROR p2p: Failed to find peers error=unable to find requisite number of peers for topic /eth2/4a26c58b/beacon_attestation_15/ssz_snappy - only 0 out of 1 peers were able to be found | Node appears to be having peering issues. See Configure ports and firewalls for improved peer-to-peer connectivity for more information. |
ERROR p2p: Failed to broadcast attestation error=could not publish message: unable to find requisite number of peers for topic /eth2/4a26c58b/beacon_attestation_15/ssz_snappy, 0 peers found to publish to: context deadline exceeded | Node appears to be having peering issues. See Configure ports and firewalls for improved peer-to-peer connectivity for more information. |
level=warning msg="Block is not processed" error="could not process block: could not validate new payload: timeout from http.Client: received an undefined ee error" prefix=initial-sync | Your execution client is taking too long to process a payload, if you continuously see this error it might be an indication that your execution client is stressed. |
ERROR powchain: could not get eth1 block hash: could not query header with height 11184524: not found | Your execution client might still be syncing. Syncing can be a fairly long process but if it’s already been over a week, we recommend that you investigate further and feel free to ask us questions on our Discord server. |
Troubleshooting your execution node
Scenario | Solution |
---|---|
chain not synced beyond EIP-155 | This usually means that your execution client needs more time to "catch up", which you don't need to worry about. If you see that your node is connected to peers and is advancing, your node is healthy. |
Fatal: Failed to register the Ethereum service: genesis not found in chain | This can happen when your Geth tries to use an old data directory. Try restarting Geth with a new data directory specified. |
Can't find peers on mainnet | Some users have reported peer-to-peer connectivity issues that were caused by old binaries or old data directories. Try using a new data directory, make sure you're using the latest version of your execution client software, and review Configure ports and firewalls for improved network connectivity for port configuration guidance. |
I'm running on mainnet, but I see a testnet ( Holesky, etc) specified in my output logs | Your execution client may be using an old binary, or an old database. Try using a new data directory, and make sure you're using the latest version of your execution client software. |
the method engine_exchangeTransitionConfigurationV1 does not exist/is not available | Users have resolved this Geth error by 1) updating to the latest version of Geth and 2) ensuring that both Prysm and Geth are configured to use JWT (if you're connecting your beacon node to Geth over HTTP). Configuring Geth to use a fresh data directory may also resolve this warning. |
ERROR powchain: Unable to process past deposit contract logs, perhaps your execution client is not fully synced error=Receipt not available for 'To' block '14957457'. | This usually means that your execution client needs more time to "catch up", which you don't need to worry about. If you see that your node is connected to peers and is advancing, your node is healthy. |
403 signature invalid | This is usually caused by invalid JWT configuration. If you're using HTTP-JWT to connect your EN-BN, ensure that both EN and BN are configured to use the same JWT secret. Different files are OK (eg when your EN and BN are on different machines), but the secret within each JWT file should be the same. See Configure JWT authentication for more information. |
Beacon client online, but never received consensus updates | Your beacon node probably needs more time to sync. See [github.com/ethereum/go-ethereum/issues/25753](https://github.com/ethereum/go-ethereum/issues/25753) for more information. |
If you see: “State heal in progress” | Geth goes into state heal during sync it just takes a long time for it to go through should start syncing on beacon node after the state heal. |
Forkchoice requested sync to new head | Your execution client is syncing now. |
Generate troubleshooting report
- Complete the above troubleshooting checklist
- Fill in the below form
- Click
Generate troubleshooting report
- Copy and paste the generated report text into Discord when asking for support
Execution node startup command
Tip: We recommend redacting wallet addresses, IP addresses, and other personal information as a general operational security best practice.Beacon node startup command
Validator node startup command
Unexpected output
Tip: Paste the ~100 lines of output before and including the output you're asking about.Generate troubleshooting report