-
Notifications
You must be signed in to change notification settings - Fork 41
Description
Description
The WakaTime Linux desktop application crashes on startup when running under GNOME Wayland.
This crash occurs both when using the AppImage and when running the app from source in development mode.
Because the issue reproduces from the source, this rules out AppImage packaging, Chromium sandboxing, or build tooling as the cause. The crash appears to originate in the Wayland/XWin DBus integration layer.
Environment
- OS: Linux (Ubuntu-24.04)
- Desktop Environment: GNOME
- Session Type: Wayland
- Node.js: installed via system package manager
- App: WakaTime Desktop (from GitHub source)
- Command used:
npm run dev
Steps to Reproduce (from source)
- Log into a GNOME Wayland session
- Clone the WakaTime desktop repository
- Install dependencies with npm install
- Start the app in development mode using npm run dev
- App builds successfully, then crashes at runtime
Expected Behavior
The desktop app should start normally on GNOME Wayland or gracefully fall back if a required Wayland or GNOME Shell component is unavailable.
Actual Behavior
The app crashes immediately after startup with a panic caused by a missing GNOME Shell Wayland DBus object.
Error Output
thread '' panicked at
x-win-rs/src/linux/api/wayland_extension_api.rs:206:6
called Result::unwrap() on an Err value:
MethodError("org.freedesktop.DBus.Error.UnknownMethod",
Some("Object does not exist at path /org/gnome/Shell/Extensions/XWinWaylandExtension"))
Key Findings
-
The crash occurs:
- On GNOME Wayland
- When running the AppImage
- When running directly from source (npm run dev)
-
The app works when running under GNOME on X11 (Xorg)
-
This indicates the issue is not related to AppImage, sandboxing, or Electron packaging
-
The panic appears to be caused by an unconditional unwrap() on a DBus call that fails when the GNOME Shell extension is not present
Suggested Improvement
The Wayland DBus integration should handle missing GNOME Shell extensions gracefully instead of panicking.
A safe error path or fallback (e.g. X11 behavior) would prevent the application from crashing on modern GNOME Wayland setups.
Additional Notes
Wayland is now the default session on most GNOME-based distributions, so this crash effectively prevents the desktop app from running for many Linux users.