[Bug]: AppImage fails to launch on Ubuntu 26.04 — missing libfuse2, EPIPE crash, and instance-lock conflict
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
Description
Area
apps/desktop
Steps to reproduce
- Download
T3-Code-0.0.28-x86_64.AppImagefrom GitHub Releases on a clean Ubuntu 26.04 (GNOME / Wayland) system. - Double-click the AppImage — nothing happens because the file lacks execute permission and the DE doesn't know how to handle AppImages by default.
- Run
chmod +xon the file and try again — still nothing, becauselibfuse2is not installed by default on Ubuntu 24.04+ (onlylibfuse3is present). - Install
libfuse2viasudo apt install libfuse2and launch from a terminal with./T3-Code-0.0.28-x86_64.AppImage --no-sandbox. - The app opens a window briefly (~1 second) then crashes with a JavaScript error dialog: "write EPIPE" at
console.logineffect.js:2863. - Close all instances, then launch with
setsid ... >/dev/null 2>&1 < /dev/null &(detached, stdout to /dev/null) — the app starts successfully. - While one instance is running, launch another — the second instance creates a window then immediately closes with no visible error (the log shows
desktop.clerk.configureinterrupted viarequestSingleInstanceLock→electronApp.quit).
Expected behavior
- Double-clicking the AppImage in a file manager should either launch the app or present a clear error message.
- The app should not crash when launched from a terminal where stdout is piped or disconnected.
- A second instance should either bring the first instance's window to the foreground or show a clear message that another instance is already running.
Actual behavior
- No desktop integration: AppImage does not register as an executable; requires manual
chmod +x. - Missing dependency:
libfuse2is not listed as a dependency anywhere; the error message only appears when run from a terminal (GUI double-click shows nothing). - EPIPE crash: The app crashes when stdout is a closed or disconnected pipe, because
console.logcalls in the Effect runtime throw an unhandledEPIPEerror in the main process. - Silent instance-lock quit: A second instance opens its window briefly then silently quits, leaving the user confused. No dialog, no notification, no focus-stealing to the existing window.
Impact
Major degradation — blocks first-time launch entirely for users on modern Ubuntu without manual intervention. The EPIPE crash also makes the app fragile when launched via scripts, desktop files, or terminal pipelines.
Version or commit
T3-Code-0.0.28-x86_64.AppImage
Environment
- OS: Ubuntu 26.04 LTS (Resolute Raccoon)
- Kernel: 7.0.0-27-generic
- Desktop: GNOME (Wayland session)
- Display: 1536x864 @ 1.25x scale
- GPU: Intel HD Graphics 620 (Kaby Lake-U GT2)
- libfuse2: not installed by default
Logs or stack traces
EPIPE crash (when launched from terminal):
Uncaught Exception:
Error: write EPIPE
at afterWriteDispatched (node:internal/stream_base_commons:159:15)
at writeGeneric (node:internal/stream_base_commons:150:3)
at Socket._writeGeneric (node:net:1025:11)
at Socket._write (node:net:1037:8)
at writeOrBuffer (node:internal/streams/writable:570:12)
at _write (node:internal/streams/writable:499:10)
at Writable.write (node:internal/streams/writable:508:10)
at console.value (node:internal/console/constructor:313:16)
at console.log (node:internal/console/constructor:416:26)
at Object.log (file:///tmp/.mount_T3-CodbsEOVo/resources/app.asar/node_modules/effect/dist/internal/effect.js:2863:5)
Instance-lock conflict (from desktop.trace.ndjson):
{"exit":{"_tag":"Interrupted","cause":"InterruptError: All fibers interrupted without error\n at desktop.clerk.configure (...)\n at desktop.startup (...)\n at desktop.app (...)\n [cause]: InterruptCause: The fiber was interrupted by:\n at fiber (#1)"}}
Workaround
chmod +x T3-Code-0.0.28-x86_64.AppImagesudo apt install libfuse2- Launch detached from terminal to avoid EPIPE:
setsid ./T3-Code-0.0.28-x86_64.AppImage --no-sandbox >/dev/null 2>&1 < /dev/null & - Ensure no other T3 Code instance is running before launching.
- For desktop integration, manually create a
.desktopfile at~/.local/share/applications/t3-code.desktop.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in apps/desktop by reproducing the AppImage launch commands and then trace the Electron startup path around requestSingleInstanceLock, desktop.startup, and desktop.clerk.configure. Use the EPIPE stack trace at effect.js:2863 and desktop.trace.ndjson to separate the launch failures. Done means a clean Ubuntu launch gives a clear dependency or integration result, disconnected stdout does not crash the app, and a second instance clearly focuses the first or reports that it is already running.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- electron, linux, typescript, ubuntu
- Domain
- desktop, operating-systems, release
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100