Kdewallet sometimes forgets password

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Using KDE on Linux with kdewallet (as Secret Service connection) sometimes does not remember last cursor login (and I have to log in again) when starting it up.

Steps to Reproduce

Use KDE (with kdewallet) (Thus gnome-keyring not installed).
From a fresh boot/login, start cursor and use the AI… it will (sometimes) prompt to log in.

I suspect this has to do with kdewallet starting up slowly, and the Secret Service DBus API call to query it fails since it has a short timeout.

So I suspect this may vary depending on your system load, network speeds etc. Thus sporadic for me.

Once it works (kdewallet has been initiated by another app), it seems to work ok.

Expected Behavior

Remember the password most of the time.

Operating System

Linux

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.7.54
VSCode Version: 1.99.3
Commit: 5c17eb2968a37f66bc6662f48d6356a100b67be0
Date: 2025-10-21T19:07:38.476Z
Electron: 34.5.8
Chromium: 132.0.6834.210
Node.js: 20.19.1
V8: 13.2.152.41-electron.0
OS: Linux x64 6.8.0-86-generic

Additional Information

I don’t have issues with other apps using Kdewallet (directly or via secret service) - I’ve written my own apps to use both as well.

This used to work with gnome-keyring 100% of the time.

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the report. This looks like a real issue with how Cursor handles the Secret Service API when kdewallet initializes slowly.

Your hypothesis about the DBus timeout makes sense, Cursor might not be waiting long enough for kdewallet to start after a cold boot.

Could you check for related errors in:

  • Cursor’s developer console (Help → Toggle Developer Tools → Console tab)
  • System logs at the time of the issue

In the meantime, I’ll pass this to the team, as Cursor’s Secret Service integration likely needs a longer timeout or better handling of delayed keyring initialization.

I think I incorrectly stated earlier that it works fine after a period. Rather it seems to be intermittent and random each time I close and re-open. I closed and reopened until I can see that Cursor AI auto-completion is not working, then checked the logs. The logs were clean when it worked, and when it did not work, my logs contained:

```
workbench.desktop.main.js:9474 Error checking if ad was seen: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.hasSeenAd (workbench.desktop.main.js:590:254091)
at async nEh (workbench.desktop.main.js:9474:36409)
at async o (workbench.desktop.main.js:9474:35829)
nEh @ workbench.desktop.main.js:9474
workbench.desktop.main.js:7957 [Background Composer] Failed to prefetch trial usage status: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.isAllowedFreeTrialUsage (workbench.desktop.main.js:590:254091)
at async fRr.isAllowedFreeTrialUsage (workbench.desktop.main.js:9421:10698)
(anonymous) @ workbench.desktop.main.js:7957
workbench.desktop.main.js:55 ERR [unauthenticated] Error: ConnectError: [unauthenticated] Error
at t (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7337:376081)
at async Object.getTeams (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:590:254091)
at async yEr.getTeams (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9330:35091)
at async yEr.refreshMembership (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9330:23024)
at async yEr.refreshAuthentication (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9330:40433) ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getTeams (workbench.desktop.main.js:590:254091)
at async yEr.getTeams (workbench.desktop.main.js:9330:35091)
at async yEr.refreshMembership (workbench.desktop.main.js:9330:23024)
at async yEr.refreshAuthentication (workbench.desktop.main.js:9330:40433)
error @ workbench.desktop.main.js:55
workbench.desktop.main.js:7900 [BackgroundComposer] Failed to fetch user settings: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getBackgroundComposerUserSettings (workbench.desktop.main.js:590:254091)
at async adr.fetchAndSyncBackgroundComposerUserSettings (workbench.desktop.main.js:7900:3576)
fetchAndSyncBackgroundComposerUserSettings @ workbench.desktop.main.js:7900
workbench.desktop.main.js:7900 Failed to fetch initial background composer settings: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getBackgroundComposerUserSettings (workbench.desktop.main.js:590:254091)
at async adr.fetchAndSyncBackgroundComposerUserSettings (workbench.desktop.main.js:7900:3576)
(anonymous) @ workbench.desktop.main.js:7900
workbench.desktop.main.js:7929 Error refreshing feature statuses: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.checkFeaturesStatus (workbench.desktop.main.js:590:254091)
at async udr.forceRefreshFeatureStatuses (workbench.desktop.main.js:7929:4303)
(anonymous) @ workbench.desktop.main.js:7929
workbench.desktop.main.js:7216 Failed to fetch current period usage: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getCurrentPeriodUsage (workbench.desktop.main.js:590:254091)
at async rPn.refetch (workbench.desktop.main.js:7216:28219)
refetch @ workbench.desktop.main.js:7216
workbench.desktop.main.js:55 ERR [unauthenticated] Error: ConnectError: [unauthenticated] Error
at t (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7337:376081)
at async Object.getDefaultModelNudgeData (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:590:254091)
at async adr.performDefaultModelRequest (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7900:6914) ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getDefaultModelNudgeData (workbench.desktop.main.js:590:254091)
at async adr.performDefaultModelRequest (workbench.desktop.main.js:7900:6914)
error @ workbench.desktop.main.js:55
workbench.desktop.main.js:7929 Error refreshing configs: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.checkNumberConfigs (workbench.desktop.main.js:590:254091)
at async udr.forceRefreshConfigs (workbench.desktop.main.js:7929:4620)
(anonymous) @ workbench.desktop.main.js:7929
workbench.desktop.main.js:55 ERR [unauthenticated] Error: ConnectError: [unauthenticated] Error
at t (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7337:376081)
at async Object.availableDocs (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:590:254091)
at async adr.availableDocs (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7900:4962)
at async vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9474:66998 ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.availableDocs (workbench.desktop.main.js:590:254091)
at async adr.availableDocs (workbench.desktop.main.js:7900:4962)
at async workbench.desktop.main.js:9474:66998
error @ workbench.desktop.main.js:55
workbench.desktop.main.js:55 ERR [unauthenticated] Error: ConnectError: [unauthenticated] Error
at t (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7337:376081)
at async Object.availableDocs (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:590:254091)
at async adr.availableDocs (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7900:4962)
at async Object.fn (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:6645:76430) ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.availableDocs (workbench.desktop.main.js:590:254091)
at async adr.availableDocs (workbench.desktop.main.js:7900:4962)
at async Object.fn (workbench.desktop.main.js:6645:76430)
error @ workbench.desktop.main.js:55
workbench.desktop.main.js:2604 Failed to fetch team admin settings: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getTeamAdminSettings (workbench.desktop.main.js:590:254091)
at async kUu (workbench.desktop.main.js:2604:21898)
at async xUu (workbench.desktop.main.js:2604:22050)
kUu @ workbench.desktop.main.js:2604
workbench.desktop.main.js:55 ERR Error fetching user privacy mode: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getUserPrivacyMode (workbench.desktop.main.js:590:254091)
at async yEr.fetchUserPrivacyMode (workbench.desktop.main.js:9330:11633)
error @ workbench.desktop.main.js:55
workbench.desktop.main.js:55 ERR [unauthenticated] Error: ConnectError: [unauthenticated] Error
at t (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7337:376081)
at async Object.getTeams (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:590:254091)
at async yEr.getTeams (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9330:35091)
at async yEr.refreshMembership (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9330:23024) ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getTeams (workbench.desktop.main.js:590:254091)
at async yEr.getTeams (workbench.desktop.main.js:9330:35091)
at async yEr.refreshMembership (workbench.desktop.main.js:9330:23024)
error @ workbench.desktop.main.js:55
workbench.desktop.main.js:55 ERR [unauthenticated] Error: ConnectError: [unauthenticated] Error
at t (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7337:376081)
at async Object.availableModels (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:590:254091)
at async LRr.keepCppModelStateUpdated (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9445:15983)
at async LRr.loadCppConfigIncludingHandlingProAccess (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9453:1259) ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.availableModels (workbench.desktop.main.js:590:254091)
at async LRr.keepCppModelStateUpdated (workbench.desktop.main.js:9445:15983)
at async LRr.loadCppConfigIncludingHandlingProAccess (workbench.desktop.main.js:9453:1259)
error @ workbench.desktop.main.js:55
workbench.desktop.main.js:7929 ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.checkFeatureStatus (workbench.desktop.main.js:590:254091)
at async udr.maybeRefreshFeatureStatusInner (workbench.desktop.main.js:7929:5150)
at async udr.getLatestFeatureStatus (workbench.desktop.main.js:7929:5458)
at async XPi.updateShouldSearchThroughUnloadedMessages (workbench.desktop.main.js:7194:22600)
maybeRefreshFeatureStatusInner @ workbench.desktop.main.js:7929
workbench.desktop.main.js:7900 Error refreshing default models: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.availableModels (workbench.desktop.main.js:590:254091)
at async adr.refreshDefaultModels (workbench.desktop.main.js:7900:5099)
refreshDefaultModels @ workbench.desktop.main.js:7900
workbench.desktop.main.js:3465 [KnowledgeBaseService Migration] Failed to migrate old user rules: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.knowledgeBaseAdd (workbench.desktop.main.js:590:254091)
at async nCn.maybeAddOldUserRules (workbench.desktop.main.js:3465:33052)
maybeAddOldUserRules @ workbench.desktop.main.js:3465
workbench.desktop.main.js:3465 [KnowledgeBaseService] Failed to fetch knowledge: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.knowledgeBaseList (workbench.desktop.main.js:590:254091)
at async nCn.refresh (workbench.desktop.main.js:3465:30261)
refresh @ workbench.desktop.main.js:3465
workbench.desktop.main.js:55 ERR [unauthenticated] Error: ConnectError: [unauthenticated] Error
at t (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:7337:376081)
at async Object.getUserPrivacyMode (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:590:254091)
at async yEr.fetchUserPrivacyMode (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9330:11633)
at async yEr.refreshPrivacyMode (vscode-file://vscode-app/tmp/.mount_cursorClwa7B/usr/share/cursor/resources/app/out/vs/workbench/workbench.desktop.main.js:9330:11292) ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.getUserPrivacyMode (workbench.desktop.main.js:590:254091)
at async yEr.fetchUserPrivacyMode (workbench.desktop.main.js:9330:11633)
at async yEr.refreshPrivacyMode (workbench.desktop.main.js:9330:11292)
error @ workbench.desktop.main.js:55
workbench.desktop.main.js:6368 [composer] Error in warmSubmitChat: ConnectError: [unauthenticated] Error
at t (workbench.desktop.main.js:7337:376081)
at async Object.warmStreamUnifiedChatWithTools (workbench.desktop.main.js:590:254091)
at async l9.warmSubmitChat (workbench.desktop.main.js:6368:3113)
warmSubmitChat @ workbench.desktop.main.js:6368
workbench.desktop.main.js:7900 [AiService] streamResponse ConnectError: [unauthenticated] Error
at t7l.$endAiConnectTransportReportError (workbench.desktop.main.js:7337:375292)
at TMr._doInvokeHandler (workbench.desktop.main.js:489:35946)
at TMr._invokeHandler (workbench.desktop.main.js:489:35688)
at TMr._receiveRequest (workbench.desktop.main.js:489:34453)
at TMr._receiveOneMessage (workbench.desktop.main.js:489:33275)
at cEt.value (workbench.desktop.main.js:489:31369)
at _e._deliver (workbench.desktop.main.js:49:2962)
at _e.fire (workbench.desktop.main.js:49:3283)
at cdt.fire (workbench.desktop.main.js:7322:12154)
at MessagePort. (workbench.desktop.main.js:9402:18292)
streamResponse @ workbench.desktop.main.js:7900
workbench.desktop.main.js:6359 [composer] Error in AI response: {“error”:“ERROR_NOT_LOGGED_IN”,“details”:{“title”:“Not logged in.”,“detail”:“Not logged in. If you are logged in, try logging out and back in.”,“isRetryable”:false,“additionalInfo”:{},“buttons”:,“planChoices”:},“isExpected”:true} ConnectError: [unauthenticated] Error
at t7l.$endAiConnectTransportReportError (workbench.desktop.main.js:7337:375292)
at TMr._doInvokeHandler (workbench.desktop.main.js:489:35946)
at TMr._invokeHandler (workbench.desktop.main.js:489:35688)
at TMr._receiveRequest (workbench.desktop.main.js:489:34453)
at TMr._receiveOneMessage (workbench.desktop.main.js:489:33275)
at cEt.value (workbench.desktop.main.js:489:31369)
at _e._deliver (workbench.desktop.main.js:49:2962)
at _e.fire (workbench.desktop.main.js:49:3283)
at cdt.fire (workbench.desktop.main.js:7322:12154)
at MessagePort. (workbench.desktop.main.js:9402:18292)
```

Thanks for the info, that’s very helpful.