Skip to content

Signal Desktop's tray icon never appears #8034

Open

Description

@Michele64

Using a supported version?

  • I have searched open and closed issues for duplicates.
  • I am using Signal-Desktop as provided by the Signal team, not a 3rd-party package.

Overall summary

Bug description

On Linux with XFCE (using ayatana-indicator-application-service as the org.kde.StatusNotifierWatcher), Signal Desktop's tray icon never appears, even though RegisterStatusNotifierItem succeeds and the watcher successfully calls GetAll on org.kde.StatusNotifierItem.

Inspecting the D-Bus traffic with dbus-monitor, the GetAll reply for org.kde.StatusNotifierItem is missing the Id property entirely (also missing: IconName, IconThemePath, Menu, ItemIsMenu). Per the StatusNotifierItem specification, Id is a required property used by watchers to identify/track the item. Immediately after receiving the (incomplete) property set, the Ayatana watcher removes its D-Bus match rules for the item and never displays it — consistent with the watcher silently discarding an item it considers invalid.

Steps to reproduce

  1. killall signal-desktop
  2. dbus-monitor --session > /tmp/sni.log &
  3. signal-desktop --no-sandbox --use-tray-icon
  4. Inspect /tmp/sni.log for the GetAll reply on interface org.kde.StatusNotifierItem, path /org/chromium/StatusNotifierItem/1

Expected result

Tray icon appears in any spec-compliant StatusNotifierWatcher implementation (Ayatana, KDE, etc.).

Actual result

RegisterStatusNotifierItem succeeds, GetAll returns a property set without Id (and without IconName/Menu), no icon appears in the tray. Confirmed the item is never returned by org.kde.StatusNotifierWatcher.RegisteredStatusNotifierItems after registration.

Relevant GetAll reply
method return ... reply_serial=680 array [ dict entry( string "AttentionIconName" variant string "" ) dict entry( string "AttentionIconPixmap" variant array [ ] ) dict entry( string "AttentionMovieName" variant string "" ) dict entry( string "Category" variant string "ApplicationStatus" ) dict entry( string "IconPixmap" variant array [ struct { int32 16 int32 16 array of bytes [...] } ] ) dict entry( string "OverlayIconPixmap" variant array [ ] ) dict entry( string "Status" variant string "Active" ) dict entry( string "Title" variant string "" ) dict entry( string "ToolTip" variant struct { string "" array [ ] string "Signal Desktop" string "" } ) dict entry( string "WindowId" variant int32 0 )

Screenshots

No response

Signal version

8.27.0

Operating system

Xubuntu 24.04.5 LTS

Version of Signal on your phone

8.26.4

Link to debug log

No response

Activity

  1. Z-Brox commented on Sep 21, 2026

    @Z-Brox

    Same here. I'm using the Signal Desktop app since May and have never been able to get the tray icon to show up.
    Systems: Debian 13 with XFCE, another PC with Cinnamon (both from Debian's repo), Signal Desktop version 8.27.0 from Signal's repo.

  2. Z-Brox commented on Sep 21, 2026

    @Z-Brox

    Same here. I'm using the Signal Desktop app since May and have never been able to get the tray icon to show up. Systems: Debian 13 with XFCE, another PC with Cinnamon (both from Debian's repo), Signal Desktop version 8.27.0 from Signal's repo.

    Ooooookay - now it works (at least on my System with XFCE). After several attempts with activating/deactivating the switch for minimizing to tray in the preferences, which did nothing, I started the program in the command line with "--start-in-tray" and now it works.
    Now I can start Signal without said option and set the tray-switches in the prefs and they work.

  3. O-Gopal commented on Sep 23, 2026

    @O-Gopal

    Same problem here with Signal 8.27.0 on Fedora Linux 44 using GNOME (Wayland), installed from Flatpak, with the GNOME extension "AppIndicator and KStatusNotifierItem Support" installed. The Signal tray icon used to show fine, but stopped showing after an update within the last month or so.

    Starting from CLI with --start-in-tray doesn't start in tray. Reinstalling has no effect. Adding socket "D-Bus session bus" in Flatseal has no effect. Closed bug #7992 may be related.

  4. MartyTheWeekendWarrior commented on Sep 25, 2026

    @MartyTheWeekendWarrior

    I also started experiencing the same problem, in that the Signal Desktop's tray icon stopped appearing a few updates back.
    I'm running the official Signal snap in XFCE under XUbuntu.

    These are the error messages I get when starting Signal from a CLI:
    $ signal-desktop --start-in-tray --trace-deprecation NODE_ENV production NODE_CONFIG_DIR /snap/signal-desktop/929/opt/Signal/resources/app.asar/config NODE_CONFIG {} ALLOW_CONFIG_MUTATIONS undefined HOSTNAME XXX NODE_APP_INSTANCE undefined SUPPRESS_NO_CONFIG_WARNING undefined SIGNAL_ENABLE_HTTP undefined userData: /home/user/snap/signal-desktop/929/.config/Signal (node:69585) [DEP0180] DeprecationWarning: fs.Stats constructor is deprecated. at asarStatsToFsStats (node:electron/js2c/node_init:2:1791) at Object.lstat (node:electron/js2c/node_init:2:5304) at LOOP (node:fs:2938:15) at process.processTicksAndRejections (node:internal/process/task_queues:85:11) [69585:0925/104144.557618:ERROR:dbus/object_proxy.cc:572] Failed to call method: org.freedesktop.login1.Manager.Inhibit: object_path= /org/freedesktop/login1: org.freedesktop.DBus.Error.AccessDenied: An AppArmor policy prevents this sender from sending this message to this recipient; type="method_call", sender=":1.641" (uid=1000 pid=69585 comm="/snap/signal-desktop/929/opt/Signal/signal-desktop" label="snap.signal-desktop.signal-desktop (enforce)") interface="org.freedesktop.login1.Manager" member="Inhibit" error name="(unset)" requested_reply="0" destination="org.freedesktop.login1" (uid=0 pid=1883 comm="/lib/systemd/systemd-logind " label="unconfined") (node:69756) [DEP0169] DeprecationWarning:url.parse()behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued forurl.parse()vulnerabilities. (Useexe --trace-deprecation ...to show where the warning was created) (node:69756) [node-fetch#buffer] DeprecationWarning: Please use 'response.arrayBuffer()' instead of 'response.buffer()'

    I'm running the following versions:
    Signal Desktop version: 8.22.0 production
    $ xfce4-about --version
    xfce4-about 4.16.1 (Xfce 4.16)
    $ uname -a
    Linux XXX 5.15.0-191-generic #201-Ubuntu SMP Fri Aug 7 18:39:04 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description: Ubuntu 22.04.5 LTS
    Release: 22.04
    Codename: jammy

  5. yookoala commented on Sep 30, 2026

    @yookoala

    I am on Fedora 44 (GNOME 50) and using Signal Desktop 8.28.0 with Flatpak.

    I have been using it for very long. And I almost never saw the tray icon. I've tried suggestion to allow Signal Desktop to use "DBus session bus" in Flatseal. And still no system tray is shown.

    Image
  6. mmattel commented on Oct 1, 2026

    @mmattel

    The issue relies in the electron version used (44.0 included in Signal up to 8.28.0 (current at the time of writing)).
    With electron 44.1+ this is gone see this link.

    When reading the merged PRs, a newer electron version is already merged, at the time of writing 44.2, but no updated Signal build has been provided that includes this electron version.

    To the repo maintainers, please create a patch release with the updated and already merged electron version that fixes this nasty bug.

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