Skip to content

Troubleshooting

jchappelow edited this page Oct 8, 2024 · 9 revisions

This page details commonly encountered errors and possible resolutions.

duplicate node ID

{"level":"info","ts":1728330119.1452067,"logger":"kwild.cometbft","caller":"p2p/switch.go:714","msg":"Ignoring inbound connection: error while adding peer","module":"p2p","err":"duplicate ID<02b2dd22472c7b8f539bf2bee472ef03d76d0aa2>","id":"02b2dd22472c7b8f539bf2bee472ef03d76d0aa2"}

There are two node instances running with the same private key.

Stop the duplicate instance. Make a new one with a different private key. If may be necessary to either change the IP address of the new node, or on the other nodes that were rejecting inbound, delete abci/addrbook.json

apphash mismatch

Possible bug. The node made change to state that were different to what the validators who approved the block got.

Check your kwil version. Stop, drop the postgres data, restart to being replaying blocks.

DETAILS NEEDED -- SHOW LOG WITH "expected" MESSAGE

no new blocks being produced

  • check node's peers
  • check other nodes' block counts with RPC
  • ensure more than 2/3 of validators are online.

timeout waiting for broadcast

timed out waiting for tx to be included in a block

Usually this is with the broadcast mode that waits for it to be included in a block.

Either keep checking with utils query-tx, or blocks are not being mined.

statesync trust period

When attempting to use statesync to sync a new node:

"msg":"failed to fetch and verify app hash","module":"statesync","err":"verify from #20401 to #20402 failed: old header has expired at 2024-10-03 14:19:34.658537651 +0000 UTC (now: 2024-10-07 07:32:29.50737627 +0000 UTC m=+24.376991152)"

Edit config.toml with chain.p2p.statesync.trust_period = 10000h

conflicting vote / duplicate vote

found conflicting vote from ourselves; did you unsafe_reset a validator?

"msg_type":"*consensus.VoteMessage","err":"conflicting votes from validator B04C9C60030FB70E55C706605A727AA5AC2700DD""

Two possible causes:

app block height higher than core

error during handshake: error on replay: app block height (22496) is higher than core (22495)

higher up:

"msg":"Preparing ABCI application at height 22496, appHash 4a4a9e97147db6ced1bdd783f31f7d38b8528b3a143437ad35e303702c888dcd"}

The appHeight is what is reported from the postgresql (app state) tables, while the other two are from the cometbft data that was rolled back.

When postgresql database is deleted/re-created empty, it will start appHeight at 0, then reapply all blocks fairly quickly to rebuild state from the blockchain data.

verify failed: old header has expired

During statesync, you may see

"caller":"light/client.go:604","msg":"Can't verify","module":"statesync","module":"light","err":"verify from #21421 to #21422 failed: old header has expired at 2024-10-03 16:11:21.252976076 +0000 UTC (now: 2024-10-07 07:34:08.596417791 +0000 UTC m=+19.144896087)"

This is caused by a "trust period" that is too short. Either pick new trusted RPC servers for the chain.statsync.rpc_servers setting, or increase chain.statsync.trust_period to something very large such as "10000h".

conflicting vote from self as validator

If you are a validator replaying blocks or having just performed a recovery procedure, you may see:

found conflicting vote from ourselves; did you unsafe_reset a validator

In most cases this may be ignored, and it should go away once the validator has reached the chain's best block height.

It is common to see commit is for a block we do not know about accompanying this message, and it is also not a problem if the node gets to the latest block successfully.

height regression

"msg":"propose step; failed signing proposal","module":"consensus","height":22496,"round":0,"err":"height regression: height regression. Got 22496, last height 22497"

This usually indicates you did a rollback but did not delete the signing folder.