Skip to content

[Bug]: AppImage fails to launch on Ubuntu 26.04 — missing libfuse2, EPIPE crash, and instance-lock conflict #4465

Description

@sdhector

Area

apps/desktop

Steps to reproduce

  1. Download T3-Code-0.0.28-x86_64.AppImage from GitHub Releases on a clean Ubuntu 26.04 (GNOME / Wayland) system.
  2. Double-click the AppImage — nothing happens because the file lacks execute permission and the DE doesn't know how to handle AppImages by default.
  3. Run chmod +x on the file and try again — still nothing, because libfuse2 is not installed by default on Ubuntu 24.04+ (only libfuse3 is present).
  4. Install libfuse2 via sudo apt install libfuse2 and launch from a terminal with ./T3-Code-0.0.28-x86_64.AppImage --no-sandbox.
  5. The app opens a window briefly (~1 second) then crashes with a JavaScript error dialog: "write EPIPE" at console.log in effect.js:2863.
  6. Close all instances, then launch with setsid ... >/dev/null 2>&1 < /dev/null & (detached, stdout to /dev/null) — the app starts successfully.
  7. 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.configure interrupted via requestSingleInstanceLockelectronApp.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: libfuse2 is 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.log calls in the Effect runtime throw an unhandled EPIPE error 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

  1. chmod +x T3-Code-0.0.28-x86_64.AppImage
  2. sudo apt install libfuse2
  3. Launch detached from terminal to avoid EPIPE:
    setsid ./T3-Code-0.0.28-x86_64.AppImage --no-sandbox >/dev/null 2>&1 < /dev/null &
  4. Ensure no other T3 Code instance is running before launching.
  5. For desktop integration, manually create a .desktop file at ~/.local/share/applications/t3-code.desktop.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions