Same issue on a different setup: a LAN-only connection with no T3 Connect route, so there's no silent fallback. It fails outright with a misleading message.
Host: Fedora VM, T3 Code installed as a systemd user service via t3 service install, at 0.1.8-nightly.20261107.4340 when it broke and then 0.1.8-nightly.20261109.4399.
Client: T3 Code Nightly desktop on macOS arm64 (0.1.8-nightly.20261109.4399), connecting over LAN with a direct route only. A second remote host broke the same morning.
What the user sees: the banner says "fedora-vm is offline — T3 Code on fedora-vm did not accept this device", with Reconnect and Disconnect server buttons. Reconnect resends the same expired credential, so it can never succeed. Nothing mentions expiry or suggests re-pairing. Updating both host and client to the latest nightly changes nothing. This comes from packages/client-runtime/src/connection/diagnosis.ts, which maps any authentication/permission failure on the server hop to "did not accept this device", even though the host logged the exact cause.
Host evidence: in auth_sessions, the desktop's last session was issued 2026-10-09T13:05Z, expired 2026-11-08T13:05Z, and last connected 2026-11-08T12:14Z (used 50 minutes before it expired). Every session row has expires_at = issued_at + 30d whatever last_connected_at is. From then on, server.trace.ndjson logs this repeatedly:
| 1 | EnvironmentAuth.authenticateHttpRequest → "Rejected authenticated session credential." {"reason":"Session token expired."} |
| 2 | ServerAuthInvalidCredentialError: Server authentication credential is invalid. at SessionStore.verify |
The paired iPhone (mobile 2.0.0) is on the same clock: last connected yesterday, expires 2026-11-10.
Suggested minimum, even without sliding expiry: surface "session expired" in the client, swap the dead-end Reconnect for a re-pair action, and warn a few days before expiry.
Triaged with Claude Code (Opus 5.5, claude-opus-5-5) via t3 triage.