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.
The following is the result of troubleshooting with Claude AI:
Environment
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
running for a long time and Cinnamon is restarted afterward.
enabled (System Tray applet removed).
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.