Skip to content

[Bug] Desktop app crashes on GNOME Wayland even when run from source (panic in Wayland DBus integration) #119

@manassehgitau

Description

@manassehgitau

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)

  1. Log into a GNOME Wayland session
  2. Clone the WakaTime desktop repository
  3. Install dependencies with npm install
  4. Start the app in development mode using npm run dev
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions