Skip to content

Tray icon never appears in GNOME top bar — StatusNotifierItem DBus property fetch fails (error occurred in Get), reproducible on both Wayland and XWayland #320

Description

@yttiiz

Description

Since updating Docker Desktop across the last two releases (now on 4.90.0), its tray icon no longer appears in the GNOME top bar. Docker Desktop itself starts and runs correctly (dashboard, backend, engine all functional) — only the systray icon is affected. The ubuntu-appindicators GNOME Shell extension logs a DBus property-fetch failure every time Docker Desktop tries to register its StatusNotifierItem, and the icon is silently dropped.

Environment

  • Docker Desktop: 4.90.0-238679
  • docker-ce: 29.6.2
  • docker-buildx-plugin: 0.35.0
  • docker-compose-plugin: 5.3.1
  • OS: Ubuntu 26.04.1 LTS (resolute)
  • Kernel: 7.0.0-31-generic
  • Desktop: GNOME Shell 50.1
  • Session type: Wayland
  • Tray host: ubuntu-appindicators@ubuntu.com (default Ubuntu AppIndicator extension), confirmed Enabled and ACTIVE, with declared shell-version compatibility including 50.

Error observed

Every time Docker Desktop's Electron UI (re)creates its tray icon, journalctl --user immediately logs:

gnome-shell[6090]: While initalizing proxy for org.freedesktop.StatusNotifierItem-<PID>-1: Gio.DBusError: GDBus.Error:org.freedesktop.DBus.Error.Failed: error occurred in Get
    getProperty@ubuntu-appindicators@ubuntu.com/dbusProxy.js:93:33
    refreshProperty@ubuntu-appindicators@ubuntu.com/appIndicator.js:322:48
    _checkNeededProperties/<@ubuntu-appindicators@ubuntu.com/appIndicator.js:561:33
    _checkNeededProperties@ubuntu-appindicators@ubuntu.com/appIndicator.js:560:66
    async*_setupProxy@ubuntu-appindicators@ubuntu.com/appIndicator.js:457:24
    async*AppIndicator@ubuntu-appindicators@ubuntu.com/appIndicator.js:435:14
    _registerItem@ubuntu-appindicators@ubuntu.com/statusNotifierWatcher.js:100:31
    _ensureItemRegistered@ubuntu-appindicators@ubuntu.com/statusNotifierWatcher.js:146:20
    RegisterStatusNotifierItemAsync@ubuntu-appindicators@ubuntu.com/statusNotifierWatcher.js:239:24
    get hasNameOwner@ubuntu-appindicators@ubuntu.com/appIndicator.js:665:17
    _updateAppInfo@ubuntu-appindicators@ubuntu.com/appIndicator.js:490:13
    _setupProxy@ubuntu-appindicators@ubuntu.com/appIndicator.js:484:20

Docker Desktop's own electron-*.log shows the tray creation happening without any error on its side:

[TRAY] Creating tray menu
application has just finished initializing
[TRAY] Determined initial tray icon

So Docker Desktop believes it registered the tray icon successfully, but the DBus Properties.Get call the tray host makes right afterward fails, and the icon never renders.

Reproduce

  1. Install/update Docker Desktop to 4.90.0 on Ubuntu 26.04 (GNOME 50.1, Wayland).
  2. Start Docker Desktop normally (systemctl --user start docker-desktop or via the app launcher).
  3. Observe: no icon appears in the GNOME top bar.
  4. Check journalctl --user -b 0 for appindicator/StatusNotifier — the error above appears within ~3 seconds of the Electron UI starting.

Expected behavior

Docker Desktop's tray icon should appear and remain visible in the GNOME top bar via the AppIndicator/KStatusNotifierItem extension, as it did before the last two updates.

Tests performed to isolate the cause

  1. Confirmed the tray host itself is healthy: ubuntu-appindicators@ubuntu.com extension is Enabled/ACTIVE and declares compatibility with GNOME Shell 50. No extension-level errors outside of the ones tied directly to Docker Desktop's item.
  2. Full restart + extension reset: killed the Docker Desktop UI (pkill -f "Docker Desktop"), disabled and re-enabled ubuntu-appindicators@ubuntu.com, then restarted docker-desktop.service. → Same DBus error reappeared immediately (~3s after [TRAY] Creating tray menu), ruling out a stale extension-side registration/cache issue.
  3. Forced XWayland via env var: relaunched with ELECTRON_OZONE_PLATFORM_HINT=x11. → Had no effect; child processes still showed --ozone-platform=wayland on their command line, meaning the env var is overridden internally.
  4. Forced XWayland via CLI flag directly on the Electron binary: ran /opt/docker-desktop/Docker\ Desktop --ozone-platform=x11 directly (bypassing the docker-desktop Go launcher wrapper). Confirmed via ps aux that the --type=gpu-process child actually ran with --ozone-platform=x11 this time. → Identical DBus error still occurred, ruling out Wayland vs. X11/XWayland as the cause — this points to a bug in Docker Desktop's/Electron's StatusNotifierItem DBus property export itself, not a compositor/protocol issue.
  5. Checked for a newer package: apt-cache policy docker-desktop shows 4.90.0-238679 as both installed and candidate — no newer release available to test against.

Suspected root cause

This looks consistent with a known Electron-side regression in how recent Electron versions export the org.kde.StatusNotifierItem DBus interface (methods/properties becoming unreadable or double-exported), which several other recent Electron apps on the same GNOME/Wayland stack are also hitting independently of Docker Desktop. Since forcing X11 did not change the outcome, the issue appears to originate in the Electron version Docker Desktop bundles rather than in GNOME's AppIndicator extension.

Diagnostics ID

Additional Info

Docker Desktop itself works fine (engine, dashboard, CLI) — this only affects tray icon visibility/access, but it does remove quick access to status, notifications, and the tray menu.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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