moonD4rk/HackBrowserData · error
secret service: %w
Error message
secret service: %w
What it means
A D-Bus session bus was connected, but acquiring the Secret Service interface (org.freedesktop.se, implemented by gnome-keyring-daemon or kwalletd5) failed. This means the bus is alive but no secret-service provider is reachable on it.
Source
Thrown at masterkey/retriever_linux.go:33
salt: []byte("saltysalt"),
iterations: 1,
keySize: 16,
hashFunc: sha1.New,
}
// DBusRetriever queries GNOME Keyring / KDE Wallet via D-Bus Secret Service.
type DBusRetriever struct{}
func (r *DBusRetriever) RetrieveKey(hints Hints) ([]byte, error) {
storage := hints.KeychainLabel
conn, err := dbus.SessionBus()
if err != nil {
return nil, fmt.Errorf("dbus session: %w", err)
}
svc, err := keyring.GetSecretService(conn)
if err != nil {
return nil, fmt.Errorf("secret service: %w", err)
}
session, err := svc.OpenSession()
if err != nil {
return nil, fmt.Errorf("open session: %w", err)
}
defer session.Close()
collections, err := svc.GetAllCollections()
if err != nil {
return nil, fmt.Errorf("get collections: %w", err)
}
for _, col := range collections {
items, err := col.GetAllItems()
if err != nil {
continue
}View on GitHub (pinned to 0503d04d7a)
Solutions
- Check the provider is on the bus: busctl --user list | grep -i secret (or org.freedesktop.se)
- Start/restart the daemon: gnome-keyring-daemon --start --components=secrets (or enable kwalletd Secret Service module in KDE Wallet settings)
- On KDE, install/enable the Secret Service API addon (kwalletmanager / kde's secret service integration)
- If the profile only has v10 cookies, skip the V11 tier — PosixRetriever's PBKDF2("peanuts") key may already decrypt it
Defensive patterns
Strategy: fallback
Validate before calling
out, _ := exec.Command("busctl", "--user", "list").Output()
if !strings.Contains(string(out), "org.freedesktop.se") {
// no Secret Service provider on the bus — skip DBusRetriever
} Try / catch
key, err := dbusRetriever.RetrieveKey(hints)
if err != nil && strings.HasPrefix(err.Error(), "secret service:") {
key, err = posixRetriever.RetrieveKey(hints) // v10 fallback
} Prevention
- Install/enable gnome-keyring (or KDE Wallet's Secret Service module) on target hosts
- Verify org.freedesktop.se is owned on the session bus before retrieval
- Restart the keyring daemon if it stopped after login/suspend
- Plan for keyring-less machines by relying on the v10 peanuts-derived key
When it happens
Trigger: dbus.SessionBus() succeeds but keyring.GetSecretService(conn) errors: gnome-keyring-daemon not running or crashed, KDE Wallet without the Secret Service plugin, or the service name not owned on the bus.
Common situations: Minimal desktop installs without gnome-keyring; KDE Wallet not configured as a Secret Service provider; keyring daemon hung after suspend; Wayland/GNOME sessions where the daemon failed at login.
Understand the failure class
Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.
Related errors
- open session: %w
- dbus session: %w
- get collections: %w
- get secret for %s: %w
- not found in credential store
AI-assisted analysis of moonD4rk/HackBrowserData@0503d04d7a (2026-09-06).
Data as JSON: /api/errors/62ca1bbbaf184abc.
Report an issue: GitHub.