Skip to content

xapp-sn-watcher fails GetAll on Signal-Desktop 8.24.1's StatusNotifierItem — icon shows as blank/unclickable placeholder #208

Description

@UKnau22

The following is the result of troubleshooting with Claude AI:

Environment

  • Linux Mint 21.3 (Virginia)
  • Cinnamon 6.0.5
  • libayatana-appindicator3-1 0.5.90-7ubuntu2
  • Signal-Desktop 8.24.1 (production build)

Symptom
After the last Signal-Desktop update, its system tray icon renders as a
blank/generic placeholder with no tooltip, and does not respond to left-
or right-click. This happens consistently on every launch.

Diagnosis
Signal registers its StatusNotifierItem with the watcher correctly:

org.freedesktop.StatusNotifierItem--1 (confirmed via
busctl --user list | grep -i statusnotifier)

But xapp-sn-watcher's own property query fails every time, immediately
after registration:

(xapp-sn-watcher:4708): CRITICAL **: Could not get properties for
org.freedesktop.StatusNotifierItem--1: GDBus.Error:
org.freedesktop.DBus.Error.Failed: error occurred in GetAll

Cinnamon then falls back to an unnamed XAppStatusIcon
(LookingGlass log: "Adding XAppStatusIcon: (:1.44/org/x/StatusIcon/Icon_N)")
which is the broken placeholder seen in the panel.

Notably, manually querying the same object over D-Bus succeeds and
returns full, valid data:

busctl --user call org.freedesktop.StatusNotifierItem--1
/StatusNotifierItem org.freedesktop.DBus.Properties GetAll
s org.kde.StatusNotifierItem

This returns a complete property set (IconPixmap, Menu path, Title,
ToolTip, etc.) with no error.

Suspected cause
This looks like the same class of issue GNOME's
gnome-shell-extension-appindicator hit and patched
(https://bugs.launchpad.net/bugs/2064698): recent Electron/Chromium tray
implementations don't expose every property listed in the
org.kde.StatusNotifierItem spec (e.g. some optional/legacy properties),
and strict GDBusProxy-based GetAll calls fail outright on the first
missing property instead of tolerating it. busctl's own GetAll call is
more lenient, which is why the manual query above succeeds while
xapp-sn-watcher's automated one doesn't.

Ruled out already

  • Not a boot-order race: fails identically even when Signal has been
    running for a long time and Cinnamon is restarted afterward.
  • Not a duplicate-applet conflict: fails with only XApp Status Applet
    enabled (System Tray applet removed).
  • libayatana-appindicator3-1 confirmed installed and up to date.
  • Signal's own logs show no errors — it creates/renders its tray icon
    cleanly on its end every time.

Suggested fix
Make xapp-sn-watcher tolerant of missing/unmatched properties in its
GetAll call, similar to the GNOME appindicator extension's fix — treat
a missing property as absent/default rather than aborting the whole
property fetch.

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