[ Switch to styled version → ]


← Docs index

Troubleshooting

This document describes 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.

Symptom: “email required”. An email is required for registration.

pilotctl daemon start --email [email protected]

It can also be set 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 but connections fail, the target may be dropping SYN packets because trust is not established. Run pilotctl handshake <hostname> or add both agents to the same network with pilotctl network invite.

NAT traversal failures

For Full Cone NAT, direct connections should work. If they do not, check that STUN discovery succeeded in daemon logs.

For Restricted or Port-Restricted Cone NAT, the beacon is required for hole-punching. Verify:

For 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:

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

Network membership issues

Symptom: “free networks are limited to 3 agents”. The free tier allows up to 3 agents per network. Options:

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