Attestation Troubleshooting
I'm missing attestations! Help!
Don't panic.
Missing some attestations is actually quite normal and has minimal impact. If your validators stop working and miss attestations, you will incur some small penalties. The penalties are small amounts of ETH that are approximately equal to the rewards the validator would have received if they had not missed their duties. For example, the penalties for missed attestations amount to around ETH or about per validator per day (as of April 2024).
But I'm being slashed!
No, you're not.
Penalties are not the same as "slashing".
Slashing is reserved for more serious offenses. Validators can be slashed for actions such as double signing or other malicious behavior that compromises the security and integrity of the network. Slashing results in a reduction of the validator's stake, typically at the level of 1 ETH.
Missing attestation duties do not result in slashing.
OK, so what should I do?
If your validators are missing attestations, perform the following checks to aid diagnosis.
Tips: Use ctrl-click (command ⌘-click) to open links
There are many links in the following steps pointing to various screens on the AVADO and different sections in this documentation. You may find it useful to use ctrl-click (on Windows) or command ⌘-click (on Macs) to open the links in new tabs. On mobile devices, long-press the link, then choose "Open in new tab" in the pop-up menu. This allows you to easily review the contents of those linked pages without losing your place in the current steps. You can then switch back to the next steps whenever required.
Check the Consensus Client
Open your Consensus Client DApp (Teku, Prysm, Nimbus) and its Management Page (Teku, Prysm, Nimbus).
If you notice that the status in the DApp remains stuck at Waiting for beacon chain to become ready without any progress, or if you come across error messages in the Logs, the Consensus Client might have a problem syncing.
The most common problems are:
The Consensus Client fails to connect to sufficient number of peers. If you are getting a low peer count, there may be a problem with your network setting. See Opening Network Ports to learn how to resolve this (by doing "port forwarding" on the router).
The Consensus Client fails to find the Execution Client. It may be the case that you have not yet installed the Execution Client, in which case once you have set up the Execution Client this error will go away. For example, the following error messages indicate that the Consensus Client is expecting to connect to the Execution Client but fails to do so.
If you have already installed an Execution Client but this error persists, check that you have correctly selected the Execution Engine (Geth or Nethermind) on the Consensus Client's Settings page to match with your installed Execution Client. Remember to click Apply changes to update the setting.
If the error persists, check the Logs of the Execution Client to see what is going on there. Sometimes a Restart of the Execution Client and the Consensus Client is all that is needed to resolve the issue.
Refer to the following sections for more details on the syncing process of the Consensus Clients and for troubleshooting ideas:
Other Errors
The following error points to a problem in MEV-Boost. Refer to Setting up MEV-Boost, especially the section on Configuring the Relays, to confirm that your settings are correct.
The following errors suggest a communication problem between the Execution and Consensus Clients. Try restarting both Clients, or a soft reboot of the AVADO (System > Reboot my AVADO).
The following error is related to Teku's storage memory. Make sure you have
-Xmx8g
setting inJAVA_OPTS
(old settings of-Xmx3g
and-Xmx5g
will not work).
In the following cases, Teku fails to start. There is likely an issue with the user settings. Check the values of
JAVA_OPTS
(default is-Xmx8g
),EXTRA_OPTS
(default is empty) and "Initial State" (default is:https://beaconstate.ethstaker.cc
). Try "Reset defaults". If nothing works, try remove Teku and install a fresh copy to ensure the factory defaults are applied.
In the following cases, the database may be corrupt beyond repair. To recover, you will need to remove Teku, perform System > Disk Cleanup, re-install Teku and start over again.
Check the Execution Client
Open the Management Page of your Execution Client DApp (Geth, Nethermind). For Nethermind, there is also a Health Checks page.
If your validators are not attesting, very often the culprit is the Execution Client (Geth or Nethermind). The syncing process of the Execution Clients is more lengthy and involves a lot more data, giving rise to more possibilities for errors.
The followings are the most common problems.
The Execution Client is unable to find peers
If you are getting a low peer count, or none at all, there may be a problem with your network setting. See Opening Network Ports to learn how to resolve this (by doing "port forwarding" on the router).
No beacon client detected or beacon chain not operational
If you have not installed and synchronized a Consensus Client (such as Nimbus, Teku, or Prysm), the Execution Client cannot sync. If you encounter the following messages:
It is likely that either you have not installed and synced a Consensus Client, or there is an issue with your existing Consensus Client. Check the logs of the Consensus Client to determine the cause of the problem.
Sometimes, there may be a communication problem between the Execution Client and the Consensus Client. Restarting both can often resolve this. Begin by restarting the Consensus Client, and then restart the Execution Client. You can find the Restart button on the respective client's Management Page.
Connection refused, or NaN%
When initially starting the Execution Client, you may see this error on the Home Page:
This warning may suggest a potential issue with the Execution Client, but it could also be a non-issue. To determine the cause, it is advisable to examine the Logs for any problems related to starting the Execution Client, finding peers, or connecting to the Beacon Chain. By addressing any identified issues, the errors and warnings should no longer persist.
If the Execution Client logs appear normal and do not indicate any problems, it is possible that the problems are temporary and will resolve themselves without further intervention.
Blocks Synced: 0
This is Nethermind specific. During the initial phase, you may find that the progress bar on the Home Page does not progress and remains at "0":
There is a known issue with the progress bar on the Home Page not functioning properly for Nethermind. You may notice that the progress remains at 0% for a significant amount of time, and then suddenly jumps to 100% when Nethermind is fully synced. To reliably monitor the progress, it is recommended to use the Logs, as they provide a more accurate depiction of the syncing process.
Sync progress "stuck" at 99%
This is Geth specific. In earlier versions of Geth, some users reported that the syncing process appeared to be "stuck" at 99% for an extended period. This was primarily due to the state regeneration and state heal steps which could take a long time.
However, newer versions of Geth have significantly improved this user experience. With the introduction of the "path state scheme" (--state.scheme=path
) option, syncing should no longer get stuck at 99%. This option has become standard staring from Geth v1.14.0 (AVADO Geth package 10.0.64).
CPU usage remains high after the node is synced, with attestation misses
Once the sync process is complete, your node will be fully synced. If you have already activated your validators, you should notice that they start attesting.
However, for a few hours, the Execution Client may still appear busy, and the CPU usage may remain high. This may even cause your validators to miss attestations if they are already activated.
This is because Geth and Nethermind are still busy finishing off their respective tasks.
In the case of Geth, it is engaged in generating state snapshots. State snapshots are a feature introduced in Geth to improve the efficiency and speed of syncing Ethereum nodes. Generating state snapshots is a resource intensive task that requires significant computational power and disk space. However, once the state snapshot is generated, it can be stored and shared among multiple nodes, significantly reducing the time and resources needed for syncing.
During this phase, you will observe the following messages in the logs repeatedly:
This behavior is normal. Geth attempts to perform snapshot generation between the arrival of new blocks to minimize interruption. Allow Geth to complete the snapshot generation process.
Remember to ensure that you continue using a fan to keep your AVADO device cool.
Specific Syncing Guides
Refer to the following sections for more details on the syncing process of the Execution Clients, particularly on what to expect during the syncing process.
Other Errors
If unfortunately you see the following errors in the Logs, these are usually bad. The database may be corrupt beyond repair. To recover, you will need to remove Geth, perform System > Disk Cleanup, re-install and let it re-sync from scratch.
Unexpected trie node in disk
State snapshotter failed to iterate trie
Fatal: Failed to register the Ethereum service
Failed to retrieve genesis from ancient EOF
Fatal: could not open database.
Inserting block failed
Invalid merkle root
Bad block
Corruption on data-block
Error in block freeze operation
NewPayloadV1: inserting block failed error="invalid gas used"
Number of finalized block is missing
Head state missing, repairing
Block state missing, rewinding further
The following errors are likely a result of incorrect user settings. Check the value of EXTRA_OPTS
(on Management Page)
Default value of EXTRA_OPTS
should be:
or the following if you manually specified to use the "path state scheme":
Note the double minus signs, and note that there are no spaces around the commas and the periods.
I still have a problem!
If you have performed all the necessary checks and your validators continue to fail in delivering attestations, we recommend reaching out to the AVADO community on Discord or raising a support ticket there.
Last updated