Summary
The Linux AppImage starts, but the backend returns HTTP 500 for GET /. The desktop UI cannot load.
Version
- T3 Code:
0.0.41-nightly.20260914.1687
- Package: Linux x86_64 AppImage, 188708343 bytes
- Electron 44.1.0, Node 24.19.0, Chrome 152.0.7977.65
- Ubuntu 26.04.1 LTS, GNOME on Wayland
Steps to reproduce
- Run
T3-Code-0.0.41-nightly.20260914.1687-x86_64.AppImage.
- Wait for
backend ready in ~/.local/state/t3code/t3code.log.
- Run
curl -i http://127.0.0.1:3773/.
Actual result
HTTP/1.1 500 Internal Server Error
content-type: text/plain
content-length: 21
Internal Server Error
Expected result
The backend returns the web client. The desktop UI loads.
Cause
The static handler calls FileSystem.open on this path:
/tmp/.mount_T3-Cod.../resources/app.asar/apps/server/dist/client/index.html
The Electron asar layer fails the open call with ENOENT:
openStaticFile -> PlatformError: NotFound: FileSystem.open (.../app.asar/apps/server/dist/client/index.html)
ENOENT, apps/server/dist/client/index.html not found in .../app.asar
The file is present in the archive. fs.statSync returns size 20143, and fs.readFileSync returns valid HTML. fs.openSync and fs.promises.open fail with ENOENT. Electron asar support implements stat and readFile, but not open.
Regression
PR #9669 added the file-handle streaming path. That code returns 500 on PlatformError. The failure occurs when the client files are inside app.asar, as in the AppImage build.
This is not #11523. #11523 reports truncated assets on the t3code:// path.
Suggested fix
Read the file with FileSystem.readFile, or mark the client directory as unpacked in the AppImage build.
Workaround
Run an older AppImage.
Summary
The Linux AppImage starts, but the backend returns HTTP 500 for
GET /. The desktop UI cannot load.Version
0.0.41-nightly.20260914.1687Steps to reproduce
T3-Code-0.0.41-nightly.20260914.1687-x86_64.AppImage.backend readyin~/.local/state/t3code/t3code.log.curl -i http://127.0.0.1:3773/.Actual result
Expected result
The backend returns the web client. The desktop UI loads.
Cause
The static handler calls
FileSystem.openon this path:The Electron asar layer fails the open call with
ENOENT:The file is present in the archive.
fs.statSyncreturns size 20143, andfs.readFileSyncreturns valid HTML.fs.openSyncandfs.promises.openfail withENOENT. Electron asar support implements stat and readFile, but not open.Regression
PR #9669 added the file-handle streaming path. That code returns 500 on
PlatformError. The failure occurs when the client files are insideapp.asar, as in the AppImage build.This is not #11523. #11523 reports truncated assets on the
t3code://path.Suggested fix
Read the file with
FileSystem.readFile, or mark the client directory as unpacked in the AppImage build.Workaround
Run an older AppImage.