Connection problems
The app shows a quiet banner when it can’t reach your box (“Can’t reach your server · last synced …”). Work top to bottom:
1. Is the phone on the tailnet?
Section titled “1. Is the phone on the tailnet?”Open the Tailscale app — connected, same tailnet as the box? This is the cause most of the time. Toggle it on and retry.
2. Is the box up?
Section titled “2. Is the box up?”From any machine on the tailnet:
tailscale ping <hostname>curl -sS https://<hostname>.<tailnet>.ts.net:8443/api/auth/statusA JSON answer means the server is fine — back to step 1. (/api/auth/status
is the pre-auth probe; the installer itself waits on it at setup.)
3. Is the service running?
Section titled “3. Is the service running?”On the box:
systemctl status gray-serverjournalctl -u gray-server -n 50Restart=always means a crashed server self-heals in seconds; a loop in the
log is worth reading. Common causes: missing Python deps after an OS upgrade,
a malformed .env edit.
4. Is the tailnet serve still published?
Section titled “4. Is the tailnet serve still published?”tailscale serve statusIf empty, re-publish:
tailscale serve --yes --bg --https=8443 http://127.0.0.1:8848 — or just
re-run the install one-liner, which repairs the publish step.
5. Certificates / MagicDNS
Section titled “5. Certificates / MagicDNS”Certificate warnings usually mean MagicDNS or HTTPS certificates got disabled in the Tailscale admin console. Re-enable both.
6. Sessions died after a “lock down”
Section titled “6. Sessions died after a “lock down””That’s by design — if you (or someone) ran Lock down & revoke session, every device must sign in again. See Security model.
Pairing an additional box fails
Section titled “Pairing an additional box fails”Auto-detect needs the new box on the same tailnet; otherwise use its address directly or the 6-character pairing-code fallback. A brand-new box still wants its own box code — watch its console log.
Still stuck? Me → Feedback with the journal lines attached beats guessing.