Before submitting
Area
apps/server
Steps to reproduce
- Desktop app on Windows, T3 Connect linked, managed Cloudflare tunnel running (cloudflared
tunnel run).
- Disable automatic time (
W32Time stopped / “Set time automatically” off) so the machine uses CMOS and can drift >60s from real time.
- Open [app.t3.codes/settings/connections](https://app.t3.codes/settings/connections).
Expected behavior
environment shows online, or a clock-skew error.
Actual behavior
row stays relay offline. Tunnel is healthy:
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.
Impact
Blocks work completely
Version or commit
0.0.34-nightly.20260818.1127 (Windows desktop). Reproduced 2026-08-18.
Environment
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.
Before submitting
Area
apps/server
Steps to reproduce
tunnel run).W32Timestopped / “Set time automatically” off) so the machine uses CMOS and can drift >60s from real time.Expected behavior
environment shows online, or a clock-skew error.
Actual behavior
row stays relay offline. Tunnel is healthy:
GET https://<allocation>.t3coderelay.com/.well-known/t3/environment→ 200POST /api/t3-connect/healthreaches the server (cf-worker: t3.codes) and gets 401cloudEnvironmentHealthHandler(apps/server/src/cloud/[http.ts](c:\Work\Dopppler\dopppler\apps\server\src\cloud\http.ts)) verifiest3-cloud-health+jwtwithclockTolerance: 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 orsubmismatch. Connections treats 401 as offline.Confirm:
w32tm /query /status→Source: Local CMOS Clock,Last Successful Sync Time: unspecified. Afterw32tm /resync(or turning automatic time on) the same environment goes online with no relink.Impact
Blocks work completely
Version or commit
0.0.34-nightly.20260818.1127(Windows desktop). Reproduced 2026-08-18.Environment
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
W32TimeAutomatic. Relink is unnecessary if clock was the only problem.Suggested fix
Invalid cloud health request. Surfaceclock_skew(local now vs tokeniat/exp) int3 connect statusand Connections.