You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Bug]: T3 Connect reports "relay offline" when the local clock isn’t NTP-synced (health JWT 401; tunnel is up) #7435
GET https://<allocation>.t3coderelay.com/.well-known/t3/environment → 200
Relay worker POST /api/t3-connect/health reaches the server (cf-worker: t3.codes) and gets 401
EnvironmentHttpUnauthorizedError: Invalid cloud health request.
http.route=/api/t3-connect/health
http.response.status_code=401
cloudEnvironmentHealthHandler (apps/server/src/cloud/[http.ts](c:\Work\Dopppler\dopppler\apps\server\src\cloud\http.ts)) verifies t3-cloud-health+jwt with clockTolerance: 60 / CLOUD_PROOF_CLOCK_SKEW_SECONDS = 60, then folds all verify/claim failures into that one 401. jose time-claim failures are indistinguishable from a bad mint key or sub mismatch. Connections treats 401 as offline.
Confirm: w32tm /query /status → Source: Local CMOS Clock, Last Successful Sync Time: unspecified. After w32tm /resync (or turning automatic time on) the same environment goes online with no relink.
Windows 10.0.26200, T3 Code Nightly, managed tunnel to 127.0.0.1:3773. Account had 2 hosts (under the 3-tunnel cap).
Logs or stack traces
Screenshots, recordings, or supporting files
No response
Workaround
Sync Windows time to NTP, keep W32Time Automatic. Relink is unnecessary if clock was the only problem.
Suggested fix
Don’t map JWT date-claim failures to generic Invalid cloud health request. Surface clock_skew (local now vs token iat/exp) in t3 connect status and Connections.
Fail fast with that reason instead of “offline”.
One-liner in Connect docs: Windows needs automatic/NTP time; skew >60s makes the host look down.
Thanks for the detailed report. We believe this is resolved by synchronizing the Windows host clock.
The report establishes an external configuration cause and a complete recovery: Windows used an unsynchronized CMOS clock, and time synchronization made the same linked environment work without relinking. Signed health proofs have a bounded validity period, so a substantially wrong host clock is not evidence of a broken tunnel. The proposed clearer clock-skew diagnostic remains a separate usability improvement.
I'm closing this as a configuration or support resolution as part of an automated pass on all open issues. This does not claim that T3 Code shipped a code fix. If new evidence shows that current T3 Code causes the problem, please reply with the version and reproduction details, and we can reopen it.
Activity
t3dotgg commentedon Aug 27, 2026
Thanks for the detailed report. We believe this is resolved by synchronizing the Windows host clock.
The report establishes an external configuration cause and a complete recovery: Windows used an unsynchronized CMOS clock, and time synchronization made the same linked environment work without relinking. Signed health proofs have a bounded validity period, so a substantially wrong host clock is not evidence of a broken tunnel. The proposed clearer clock-skew diagnostic remains a separate usability improvement.
I'm closing this as a configuration or support resolution as part of an automated pass on all open issues. This does not claim that T3 Code shipped a code fix. If new evidence shows that current T3 Code causes the problem, please reply with the version and reproduction details, and we can reopen it.