[Ethereum] Synchronisation failed: peer is unknown or unhealthy

go-ethereump2poolsynchronization

I am getting this error message while synching my geth node: eth/downloader/downloader.go:278] Synchronisation failed: peer is unknown or unhealthy

  1. Why would a peer be considered 'unhealthy'?
  2. Is there a log file I can check for more information about this error?

Best Answer

You're hitting an errUnknownPeer error.

From the code in downloader.go:

// Retrieve the origin peer and initiate the downloading process
p := d.peers.Peer(id)
if p == nil {
    return errUnknownPeer
}

Here we're trying to use a previously known peer with an id of id, but which no longer appears in the list of known peers. (So our look-up in the current list of peers returns nil.)

There's nothing in the code to explicity define "unhealthy" with regards to peers - it only appears in the error string - but from the context it means either:

  • the peer is no longer online, or
  • the peer is online but unable to communicate.

Both of which means the peer can no longer be discovered.

I can't see anything in the code that would log anything more useful, but you could try setting a higher verbosity level in the console if it happens repeatedly. (Using debug.verbosity(x), where x is the logging level.)

Related Topic