Before submitting
Area
apps/server
Steps to reproduce
- On a linux-arm64 machine (tested: Orange Pi 5 Max, Armbian bookworm, Node v24.15.0), install and run the server with
npm i t3@latest (or bun i t3@latest + bunx t3).
- Start the server:
node node_modules/t3/dist/bin.mjs (or npx t3@latest).
- Observe startup crash after migrations run successfully.
Expected behavior
Server boots and serves the web UI, building node-pty from source if no prebuilt binary exists for the platform (the repo already has this pattern: node-gyp rebuild + staging into prebuilds/linux-<arch> in the WSL/desktop flow).
Actual behavior
Server exits with code 1:
[ERROR]: NodePtyModuleLoadError: Failed to load node-pty for linux-arm64.
[cause]: Error: Failed to load native module: pty.node, checked: build/Release, build/Debug, prebuilds/linux-arm64:
Error: Cannot find module './prebuilds/linux-arm64//pty.node'
NodePtyAdapter.make ends in .pipe(orDie), so this is an unrecoverable startup crash, not a degraded-terminal warning.
Impact
Blocks work completely
Version or commit
t3@0.0.40 (npm), node-pty@1.1.0 (transitive dep)
Environment
- OS: Armbian 26.11 bookworm (Debian 12), kernel 6.1.115-vendor-rk35xx, aarch64
- Node v24.15.0 (nvm), Bun 1.3.14
- Build tools present: make, gcc, python3 — g++ absent
Logs or stack traces
[14:26:56.384] ERROR (#5): NodePtyModuleLoadError: Failed to load node-pty for linux-arm64.
at NodePtyAdapter.make (file:///home/uname/node_modules/t3/dist/NodePtyAdapter-B9l4A_UU.mjs:115:34)
[cause]: Error: Failed to load native module: pty.node, checked: build/Release, build/Debug, prebuilds/linux-arm64:
Error: Cannot find module './prebuilds/linux-arm64//pty.node'
Require stack:
- /home/uname/node_modules/node-pty/lib/utils.js
- /home/uname/node_modules/node-pty/lib/index.js
Verified on the machine:
node-pty@1.1.0 npm tarball ships prebuilds/ for darwin-arm64, darwin-x64, win32-arm64, win32-x64 only — no linux prebuild of any arch.
build/Release/ contains only .deps, node-addon-api, obj.target — the compile never produced pty.node.
node-pty's own scripts/prebuild.js reports: Rebuilding because .../prebuilds/linux-arm64 does not exist, then the node-gyp rebuild fallback cannot succeed without a C++ compiler (gcc fails with cannot execute 'cc1plus').
- The release pipeline (
release.yml) has a build_wsl_node_pty job for linux-x64 only — no linux-arm64 artifact.
Workaround
sudo apt install -y g++ and rebuild (npm rebuild node-pty or a clean npm i so the node scripts/prebuild.js || node-gyp rebuild install script can complete), then run under Node. There is no workaround without a compiler.
Suggested fix (one of)
- Add a linux-arm64
node-pty build to the release pipeline and bundle/stage it the way the linux-x64 WSL prebuild is handled, or
- Make the npm
t3 install self-healing on Linux: detect missing prebuilds/linux-<arch>/pty.node postinstall and run node-gyp rebuild with a clear error message naming the missing toolchain (g++) instead of crashing at first startup, or
- At minimum, document
g++ (build-essential) as a Linux prerequisite for npx t3 and fail fast with that message during install rather than at server boot.
Before submitting
Area
apps/server
Steps to reproduce
npm i t3@latest(orbun i t3@latest+bunx t3).node node_modules/t3/dist/bin.mjs(ornpx t3@latest).Expected behavior
Server boots and serves the web UI, building
node-ptyfrom source if no prebuilt binary exists for the platform (the repo already has this pattern:node-gyp rebuild+ staging intoprebuilds/linux-<arch>in the WSL/desktop flow).Actual behavior
Server exits with code 1:
NodePtyAdapter.makeends in.pipe(orDie), so this is an unrecoverable startup crash, not a degraded-terminal warning.Impact
Blocks work completely
Version or commit
t3@0.0.40 (npm), node-pty@1.1.0 (transitive dep)
Environment
Logs or stack traces
Verified on the machine:
node-pty@1.1.0npm tarball shipsprebuilds/fordarwin-arm64, darwin-x64, win32-arm64, win32-x64only — no linux prebuild of any arch.build/Release/contains only.deps, node-addon-api, obj.target— the compile never producedpty.node.node-pty's ownscripts/prebuild.jsreports:Rebuilding because .../prebuilds/linux-arm64 does not exist, then thenode-gyp rebuildfallback cannot succeed without a C++ compiler (gccfails withcannot execute 'cc1plus').release.yml) has abuild_wsl_node_ptyjob for linux-x64 only — no linux-arm64 artifact.Workaround
sudo apt install -y g++and rebuild (npm rebuild node-ptyor a cleannpm iso thenode scripts/prebuild.js || node-gyp rebuildinstall script can complete), then run under Node. There is no workaround without a compiler.Suggested fix (one of)
node-ptybuild to the release pipeline and bundle/stage it the way the linux-x64 WSL prebuild is handled, ort3install self-healing on Linux: detect missingprebuilds/linux-<arch>/pty.nodepostinstall and runnode-gyp rebuildwith a clear error message naming the missing toolchain (g++) instead of crashing at first startup, org++(build-essential) as a Linux prerequisite fornpx t3and fail fast with that message during install rather than at server boot.