[BUG] Linux .deb Recommends a nonexistent package (kwalletd6), pulling gnome-keyring onto KDE systems

Status Fixed / completed
Reported on v2.1.260
Maintainer reply None cached
Activity 3 comments · opened Sep 10, 2026 · closed Sep 11, 2026

I had AI help me with this after suffering the issue. I tried my best to avoid ai babble and it's all based on the events on my machine.

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report
  • [x] I am using the latest version — the defect is identical in every published version, including 1.49585.0 (see version section)

What's Wrong?

Packaging bug in the official Claude Code Desktop .deb for Linux
(https://downloads.claude.ai/claude-desktop/apt/stable, documented at
https://code.claude.com/docs/en/desktop-linux). It bundles the Claude Code engine
(2.1.260 here) and the Code tab is affected because sign-in cannot persist.

The package's KDE keyring alternatives are not real package names:

$ dpkg-query -W -f='${Recommends}\n' claude-desktop
... gnome-keyring | kwalletd6 | kwalletd5, ...

$ apt-cache policy kwalletd6 kwalletd5
kwalletd6:
Installed: (none)
Candidate: (none)
kwalletd5:
Installed: (none)
Candidate: (none)

kwalletd6 is a binary, not a package. The package is kwallet6:

$ dpkg -S /usr/bin/kwalletd6
kwallet6: /usr/bin/kwalletd6

Because neither KDE alternative can be satisfied, APT installs gnome-keyring on
every KDE system, even where KWallet is already installed and working. Two Secret
Service providers then race for org.freedesktop.secrets at login. When
gnome-keyring wins, Electron's safeStorage gets no key and the app shows:

Your sign-in won't be saved on this device. Install and unlock a system keyring (such as KDE Wallet (KWallet)), then restart the app.

What Should Happen?

Installing claude-desktop on a KDE system with kwallet6 present should not
pull in a second keyring, and sign-in should persist across restarts.

Fix in debian/control:

-Recommends: ... gnome-keyring | kwalletd6 | kwalletd5, ...
+Recommends: ... gnome-keyring | kwallet6 | kwalletd5, ...

The app only needs some Secret Service implementation via libsecret or the XDG
portal, so Suggests: would also be reasonable.

Error Messages/Logs

$ busctl --user list | grep -i secret
org.freedesktop.impl.portal.desktop.kwallet   1825 ksecretd
org.freedesktop.secrets                       1795 gnome-keyring-d
org.kde.ksecretd                              1825 ksecretd
org.kde.secretservicecompat                   1825 ksecretd

$ grep 'gnome-keyring' /var/log/dpkg.log
2026-09-02 18:04:52 configure gnome-keyring:amd64 50.0-1 <none>   # same transaction as claude-desktop

$ zcat /var/log/installer/initial-status.gz | grep -c '^Package: gnome-keyring$'
0                                                                  # distro did not ship it

Steps to Reproduce

  1. Kubuntu 26.04 (Plasma 6). Confirm kwallet6 is installed and gnome-keyring is not.
  2. sudo apt install claude-desktop. Note gnome-keyring in the same dpkg transaction.
  3. Reboot. Both gnome-keyring-daemon and ksecretd start; busctl --user list | grep -i secret shows gnome-keyring owning org.freedesktop.secrets.
  4. Launch Claude Desktop. Depending on which daemon won, the warning above appears and the session is not saved.

sudo apt remove gnome-keyring plus a reboot fixes it: ksecretd becomes the sole
owner and the app's portal backend initialises against it.

Claude Model

Not sure / Multiple models

Is this a regression?

I don't know

Claude Code Version

claude-desktop 1.46388.2 (amd64, Anthropic apt repo, stable), bundling Claude
Code engine 2.1.260 (~/.config/Claude/claude-code/2.1.260/claude --version).

Not version-specific. The Recommends line is byte-identical from 1.17180.0
through the current candidate 1.49585.0:

$ apt-cache show claude-desktop | grep -c 'gnome-keyring | kwalletd6 | kwalletd5'
37 # every published version

Platform

Anthropic API

Operating System

Ubuntu/Debian Linux

Terminal/Shell

Other

Additional Information

Ubuntu 26.04.1 LTS (Kubuntu), Plasma 6, XDG_CURRENT_DESKTOP=KDE, kwallet6
6.24.0-0ubuntu1, libpam-kwallet5 4:6.6.4-0ubuntu1.

Stock /etc/pam.d/sddm lists both pam_gnome_keyring.so and pam_kwallet5.so as
optional. That is inert until something installs gnome-keyring, which is what
this dependency does.

Previously filed as #92598 and auto-closed as "not about Claude Code" because the
version field said N/A. Comparable official-.deb packaging reports triaged here:
#84069, #84386.

Not a duplicate of #77913. Same warning text, different cause: there the portal
backend fails to initialise on ChromeOS/Crostini (prev_init_success:false,
XDG_CURRENT_DESKTOP=X-Generic). Here it initialises fine:

$ grep -o '"os_crypt":{[^}]*}' ~/.config/Claude/Local\ State
"os_crypt":{"portal":{"prev_desktop":"KDE","prev_init_success":true}

This bug is upstream of backend selection: the .deb installs a provider that
should never have been installed. #80494 and #89812 (repeated re-login on Linux)
may share this cause on KDE hosts but do not identify one.

View original on GitHub ↗

3 Comments

nilsjha · 1 month ago

Can confirm same behavior on Debian Testing/Forky with KDE6. It would be nice if someone could forward this to the Claude Desktop team, or tell where to report this.

Workaround to not get gnome-keyring installed: apt install --no-install-recommends claude-desktop

PandaWood · 1 month ago
It would be nice if someone could forward this to the Claude Desktop team, or tell where to report this.

Actually I think this is done, as I understand it, codebyte-ant has picked this up and completed the issue, probably in a private anthropic repository

I expect this command will return kwallet5/6 (ie without the 'd') in a few days after it goes through their build process

sudo apt update && apt-cache show claude-desktop | grep -E '^(Version|Recommends)' | head -2

PandaWood · 17 days ago
. It would be nice if someone could forward this to the Claude Desktop team, or tell where to report this.

FYI The fix is done but not the way I guessed...

In claude-desktop 2.7032.0, the line is now:

gnome-keyring | plasma-workspace

So doesn't name a kwallet package, just checks if you're on Plasma... so wouldn't pull in gnome-keyring for us anymore