{"record":{"id":"fb52ff8eab2a2899","repo":"moonD4rk/HackBrowserData","slug":"get-collections-w","errorCode":null,"errorMessage":"get collections: %w","messagePattern":"get collections: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"masterkey/retriever_linux.go","lineNumber":44,"sourceCode":"\tconn, err := dbus.SessionBus()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"dbus session: %w\", err)\n\t}\n\n\tsvc, err := keyring.GetSecretService(conn)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"secret service: %w\", err)\n\t}\n\n\tsession, err := svc.OpenSession()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"open session: %w\", err)\n\t}\n\tdefer session.Close()\n\n\tcollections, err := svc.GetAllCollections()\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"get collections: %w\", err)\n\t}\n\n\tfor _, col := range collections {\n\t\titems, err := col.GetAllItems()\n\t\tif err != nil {\n\t\t\tcontinue\n\t\t}\n\t\tfor _, item := range items {\n\t\t\tlabel, err := item.GetLabel()\n\t\t\tif err != nil {\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\tif label == storage {\n\t\t\t\tsecret, err := item.GetSecret(session.Path())\n\t\t\t\tif err != nil {\n\t\t\t\t\treturn nil, fmt.Errorf(\"get secret for %s: %w\", storage, err)\n\t\t\t\t}\n\t\t\t\tif len(secret.Value) > 0 {","sourceCodeStart":26,"sourceCodeEnd":62,"githubUrl":"https://github.com/moonD4rk/HackBrowserData/blob/0503d04d7a8d0379d060268a74f1b149e5a0aad5/masterkey/retriever_linux.go#L26-L62","documentation":"Enumerating the Secret Service collections (e.g. the 'login' collection) failed after a session was opened. GetAllCollections performs D-Bus calls against org.freedesktop.Secret.Collection objects; failures here mean the keyring's collection tree could not be read.","triggerScenarios":"svc.GetAllCollections() errors: the default collection is locked in a way that blocks listing, the daemon returns an internal D-Bus error, or collection objects vanished mid-enumeration.","commonSituations":"Keyring collection corrupt after an unclean shutdown; daemon upgraded/restarted between the OpenSession and GetAllCollections calls; restricted environments where the service refuses collection enumeration.","solutions":["Unlock the login collection: secret-tool search --unlock ... or via seahorse ('Unlock' on the keyring)","Restart gnome-keyring-daemon and retry, since stale collection objects cause transient D-Bus errors","Inspect the underlying error (%w) — D-Bus error names like org.freedesktop.DBus.Error.AccessDenied point to permission vs corruption","Fall back to the v10 path: PosixRetriever's PBKDF2(\"peanuts\") key often suffices for older profiles"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":"null","typeGuard":null,"tryCatchPattern":"key, err := dbusRetriever.RetrieveKey(hints)\nif err != nil && strings.HasPrefix(err.Error(), \"get collections:\") {\n    key, err = posixRetriever.RetrieveKey(hints) // v10 fallback\n}","preventionTips":["Unlock keyring collections (secret-tool unlock or Seahorse) before extraction","Restart the keyring daemon if collection enumeration is persistently failing","Read the wrapped cause to distinguish D-Bus AccessDenied from corruption","Keep PosixRetriever in the chain for profiles that work without the keyring"],"tags":["linux","secret-service","keyring","collections"],"backgroundTag":"database-query-failed","analyzedSha":"0503d04d7a8d0379d060268a74f1b149e5a0aad5","analyzedAt":"2026-09-06T13:38:28.707Z","contentChangedAt":"2026-09-06T13:38:28.707Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}