Before submitting
Area
packages/contracts or packages/shared
Steps to reproduce
- Install the Windows ARM64 desktop build of T3 Code on a Windows 11 ARM64 machine with no
cloudflared on PATH and T3CODE_CLOUDFLARED_PATH unset.
- Open Connections and turn on T3 Connect for that environment.
Expected behavior
T3 Code downloads, verifies, and activates the managed relay client, as it does on win32-x64, darwin-, and linux-.
Actual behavior
T3 Connect cannot be enabled. The UI reports that the relay client cannot be installed automatically.
CLOUDFLARED_RELEASE_ASSETS in packages/shared/src/relayClient.ts has no win32-arm64 key (still true on main @ 54084ae). resolveReleaseAsset("win32", "arm64") returns null, so resolve reports status: "unsupported" and installWithProgress fails with unsupported_platform ("T3 Code does not provide a managed relay client binary for win32-arm64").
Cloudflare does not publish a native Windows ARM64 cloudflared. Both 2026.5.2 and the current 2026.9.3 ship only windows-386 and windows-amd64 Windows assets.
Impact
Blocks work completely
Version or commit
0.0.45-nightly.20261002.2584 (desktop); code path confirmed on main @ 54084ae
Environment
Windows 11 ARM64 (build 26200), T3 Code (Nightly) desktop, Windows ARM64 build
Logs or stack traces
# relayClient.ts on main
if (!releaseAsset) {
return yield* new RelayClientInstallError({
reason: "unsupported_platform",
message: `T3 Code does not provide a managed relay client binary for ${platform}-${arch}.`,
});
}
Proposed fix
Map win32-arm64 to the existing pinned windows-amd64 asset. Windows 11 on ARM runs x64 binaries under its built-in emulation, and the managed path already keys on ${platform}-${arch}, so nothing else needs to change:
const WINDOWS_AMD64_ASSET: CloudflaredReleaseAsset = {
url: "https://github.com/cloudflare/cloudflared/releases/download/2026.5.2/cloudflared-windows-amd64.exe",
sha256: "20b9638f685333d623798e733effbad2487093f15ba592f6c7752360ff3b7ab7",
archive: "binary",
};
// in CLOUDFLARED_RELEASE_ASSETS
"win32-x64": WINDOWS_AMD64_ASSET,
// Cloudflare publishes no native Windows ARM64 build; Windows 11 on ARM runs it under x64 emulation.
"win32-arm64": WINDOWS_AMD64_ASSET,
This keeps the pinned checksum and the existing download → verify → version validation → atomic activate flow unchanged. A focused test would assert that resolveReleaseAsset("win32", "arm64") returns the amd64 asset.
I verified this manually on the ARM64 machine:
- I placed the pinned
cloudflared-windows-amd64.exe 2026.5.2 at the managed path %USERPROFILE%\.t3\tools\cloudflared\2026.5.2\win32-arm64\cloudflared.exe. Its SHA-256 matched the pinned value.
cloudflared version reported 2026.5.2 under emulation and exited 0.
- T3 Code then resolved it as the managed client and started the tunnel.
- The iOS app connected through the relay:
/.well-known/t3/environment, /oauth/token, /api/auth/websocket-ticket, /ws, and /api/orchestration/shell all succeeded.
I did not check Windows 10 on ARM, which cannot run x64 binaries. If that platform matters, windows-386 would be the fallback asset there.
Workaround
Download the pinned x64 asset yourself and place it at the managed path for your arch (<base dir>\tools\cloudflared\2026.5.2\win32-arm64\cloudflared.exe). Alternatively, set T3CODE_CLOUDFLARED_PATH to it. You have to repeat this whenever CLOUDFLARED_VERSION changes.
Before submitting
Area
packages/contracts or packages/shared
Steps to reproduce
cloudflaredonPATHandT3CODE_CLOUDFLARED_PATHunset.Expected behavior
T3 Code downloads, verifies, and activates the managed relay client, as it does on win32-x64, darwin-, and linux-.
Actual behavior
T3 Connect cannot be enabled. The UI reports that the relay client cannot be installed automatically.
CLOUDFLARED_RELEASE_ASSETSinpackages/shared/src/relayClient.tshas nowin32-arm64key (still true onmain@ 54084ae).resolveReleaseAsset("win32", "arm64")returnsnull, soresolvereportsstatus: "unsupported"andinstallWithProgressfails withunsupported_platform("T3 Code does not provide a managed relay client binary for win32-arm64").Cloudflare does not publish a native Windows ARM64
cloudflared. Both 2026.5.2 and the current 2026.9.3 ship onlywindows-386andwindows-amd64Windows assets.Impact
Blocks work completely
Version or commit
0.0.45-nightly.20261002.2584 (desktop); code path confirmed on
main@ 54084aeEnvironment
Windows 11 ARM64 (build 26200), T3 Code (Nightly) desktop, Windows ARM64 build
Logs or stack traces
Proposed fix
Map
win32-arm64to the existing pinnedwindows-amd64asset. Windows 11 on ARM runs x64 binaries under its built-in emulation, and the managed path already keys on${platform}-${arch}, so nothing else needs to change:This keeps the pinned checksum and the existing download → verify →
versionvalidation → atomic activate flow unchanged. A focused test would assert thatresolveReleaseAsset("win32", "arm64")returns the amd64 asset.I verified this manually on the ARM64 machine:
cloudflared-windows-amd64.exe2026.5.2 at the managed path%USERPROFILE%\.t3\tools\cloudflared\2026.5.2\win32-arm64\cloudflared.exe. Its SHA-256 matched the pinned value.cloudflared versionreported2026.5.2under emulation and exited 0./.well-known/t3/environment,/oauth/token,/api/auth/websocket-ticket,/ws, and/api/orchestration/shellall succeeded.I did not check Windows 10 on ARM, which cannot run x64 binaries. If that platform matters,
windows-386would be the fallback asset there.Workaround
Download the pinned x64 asset yourself and place it at the managed path for your arch (
<base dir>\tools\cloudflared\2026.5.2\win32-arm64\cloudflared.exe). Alternatively, setT3CODE_CLOUDFLARED_PATHto it. You have to repeat this wheneverCLOUDFLARED_VERSIONchanges.