How a "broken HTTPS" bug turned out to be a phantom DNS problem — and how Amplifier's multi-agent debugging traced it across three sessions, two machines, and a disconnected iPhone.
A self-hosted file browser built as a Progressive Web App. It runs on a Mac Mini and a Raspberry Pi, accessible anywhere over Tailscale — a mesh VPN that gives every device a private, encrypted connection. The interface is a glass-morphism UI that feels native on iOS, installable right to the home screen.
The developer opened a new Amplifier session. They'd been working on HTTPS fixes earlier — but couldn't remember the details. Which session was it? What had they changed? What was left to do?
The session-analyst agent searched the project's Amplifier history and reconstructed the full timeline of prior work:
socket.gethostname() was returning "mac.lan" instead of the Tailscale hostname. HTTPS was silently degrading to HTTP.c8c98ab. Clean history, clear message.The root of the original bug was a design choice in the server: when HTTPS certificates can't be found, the server silently falls back to HTTP. No error. No warning. Just... unencrypted.
The hostname fix (hostname = "home-server") had resolved this — HTTPS was working again. But the developer had come back with a new problem.
With prior context recovered, the developer revealed what was actually bothering them:
HTTPS was fine. The server was fine. Something else was broken — and it only affected the iPhone.
Amplifier dispatched a coordinated investigation across multiple agents — each probing a different layer of the stack simultaneously:
server.py networking stack: bind address, SSL config, CORS headers, PWA manifest, service worker, all shell scripts.Every diagnostic came back green. The problem wasn't where anyone expected:
--https flag, PID 43784, port 8080. TLS handshake completing successfully.localhost and Tailscale IP 100.x.x.x.If the server, the certs, the port, and the network were all fine... where was the ghost?
The critical clue was in the Tailscale status output — one tiny character that explained everything:
That - next to the iPhone. Tailscale wasn't connected.
Without Tailscale active on the iPhone, MagicDNS can't resolve *.example.ts.net hostnames. The phone can't route to 100.x.x.x addresses. It's not a server problem. It's not an HTTPS problem. It's a DNS resolution failure — the phone literally cannot find the server.
What looked like one problem was actually a stack of three distinct issues uncovered across multiple sessions:
socket.gethostname() returning "mac.lan" instead of "home-server". Certs not found. Fixed./etc/pibrowser/certs — old project name. Service file still had /home/pi/ paths. Fixed.Data as of: February 26, 2026
Project: AMP Browser (ampbrowser) — private repository
Session data source: Amplifier events.jsonl files for three recovered sessions:
0000000000000000-90db688103f74ee6 (superpowers-implementer, 02:25)0000000000000000-68b10d4ed2a642a6 (superpowers-implementer, 03:01)0000000000000000-e4438c74437f48e2 (foundation-git-ops, 03:18)Diagnostic methods:
curl -k https://localhost:8080/api/infotailscale statusopenssl x509 -in cert.crt -text100.x.x.x:8080Git commits referenced: c8c98ab, 939fa92, dfcc4ba, 8f78fa4
Key finding: iPhone Tailscale status showed - (disconnected), confirmed as root cause of DNS resolution failure.
Gaps: iPhone-side Tailscale logs not available for review. Diagnosis based on status indicator only.