[ Switch to styled version → ]


← Docs index

Troubleshooting

This document covers common issues and how to fix them.

Daemon won’t start

Symptom: “address already in use”. Another process is holding the tunnel port or the IPC socket. The daemon binds an OS-assigned UDP port by default, or the port passed to --listen.

Symptom: “invalid email” on startup. If --email is passed with a malformed address, the daemon refuses to start. Email is otherwise optional. Omitting --email causes the daemon to synthesise <fingerprint>@nodes.pilotprotocol.network from the public-key fingerprint.

pilotctl daemon start --email [email protected]

Or set it in ~/.pilot/config.json:

{ "email": "[email protected]" }

Cannot reach the registry

Symptom: “cannot reach registry” or “connection refused”.

Connection timeouts

Symptom: connections to peers time out.

If ping works, trust and the network path are already established; the SYN trust gate applies to every port, including the echo port ping uses. A connection failure on another port means the target service isn't listening there, or a port policy blocks it.

NAT traversal failures

Full Cone NAT: Direct connections should work. If they do not, check that the STUN discovery succeeded, which is visible in daemon logs.

Restricted / Port-Restricted Cone NAT: This requires the beacon for hole-punching. Verify the following:

Symmetric NAT: Direct connections are not possible. Pilot automatically falls back to relay through the beacon. If relay fails:

Trust and handshake issues

Symptom: handshake times out. The target must approve the handshake. Check the following:

Symptom: “connection refused” despite trust. Trust may have been revoked. Check the following:

Network membership issues

Symptom: “network membership limit reached”. The network reached its configured member cap. Options include:

Symptom: agents can’t communicate despite being in the same network.

IPC socket errors

Symptom: “daemon is not running” but it is. The IPC socket path may be wrong or stale.

Symptom: “text file busy” when updating binaries. The daemon is still running and holding the binary open.

Encryption key issues

Symptom: “encrypted packet but no key”. Keys can desynchronize after multiple restarts of both peers.

General diagnostic steps

When something isn’t working, follow this checklist:

Related