Diagnose a Solana vote account that stopped advancing
A validator identity and its vote account are separate public keys. When an alert names a vote account, use its latest recorded vote to measure how far it has fallen behind.
Read both partitions
Substitute the vote account address below. Search the current and delinquent arrays and save the matching nodePubkey, lastVote and activatedStake. Keeping unstaked delinquents is useful when observing a validator being commissioned.
{
"jsonrpc": "2.0",
"id": 1,
"method": "getVoteAccounts",
"params": [
{
"votePubkey": "VOTE_ACCOUNT",
"commitment": "finalized",
"keepUnstakedDelinquents": true
}
]
}
Track the distance over time
Read the cluster slot with getSlot at finalized commitment. With an observed slot of 95000 and a last vote at 94920, the approximate distance is 80 slots. These are separate reads, so record both timestamps. Repeat the pair to see whether the distance is increasing and whether lastVote moves.
An empty match warrants checking the key and cluster first. The delinquent classification depends on a slot threshold. Compare monitors only after confirming that they use the same threshold and commitment.