microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.05k stars 29.22k forks source link

Linux: An OS keyring couldn't be identified for storing the encryption related data in your current desktop environment #187338

Open Konglomneshued opened 1 year ago

Konglomneshued commented 1 year ago

Does this issue occur when all extensions are disabled?: Yes

I referred to https://code.visualstudio.com/docs/editor/settings-sync#_troubleshooting-keychain-issues

This is the error part of my log after running code-insiders --verbose --vmodule="*/components/os_crypt/*=1":

[314774:0707/210405.156953:INFO:CONSOLE(627)] "%cTRACE color: #888 [mainThreadSecretState] Setting password for vscode.github-authentication extension:  github.auth", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210405.157113:INFO:CONSOLE(627)] "%cTRACE color: #888 [NativeSecretStorageService] Notifying user that secrets are not being stored on disk.", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210405.158116:INFO:CONSOLE(627)] "%cTRACE color: #888 DialogService#prompt An OS keyring couldn't be identified for storing the encryption related data in your current desktop environment.", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.420345:INFO:CONSOLE(627)] "%cTRACE color: #888 [secrets] encrypting secret for key: {"extensionId":"vscode.github-authentication","key":"github.auth"}", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[main 2023-07-08T02:04:09.420Z] [EncryptionMainService] Encrypting value.
[main 2023-07-08T02:04:09.422Z] Error: Error while encrypting the text provided to safeStorage.encryptString. Encryption is not available.
    at e.$U2b.encrypt (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:42:11004)
    at Object.call (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:25:4844)
    at R.s (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:23:5128)
    at R.q (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:23:4644)
    at o.value (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:23:4051)
    at y.w (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at y.x (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:18:1976)
    at y.fire (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:18:2192)
    at o.value (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:16:38681)
    at y.w (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at y.fire (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:18:2123)
    at o.value (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:16:38875)
    at y.w (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at y.fire (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:18:2123)
    at se (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:16:41018)
    at IpcMainImpl.f (/opt/visual-studio-code-insiders/resources/app/out/vs/code/electron-main/main.js:19:96358)
    at IpcMainImpl.emit (node:events:513:28)
    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:2:80979)
    at EventEmitter.emit (node:events:513:28)
[314774:0707/210409.425211:INFO:CONSOLE(627)] "%c  ERR color: #f33 Error: Error while encrypting the text provided to safeStorage.encryptString. Encryption is not available.", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.425442:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Getting accounts for github", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.425641:INFO:CONSOLE(627)] "%c INFO color: #33f Settings Sync: Updated current session 8103a56381b60bac", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.425835:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Getting accounts for github", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.426026:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Updated accounts for github", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.426214:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Getting accounts for microsoft", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.426428:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Updated accounts for github", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.426630:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Getting accounts for microsoft", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.426816:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Updated accounts for microsoft", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.426981:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Updating the token for the account Android789515", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.427124:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Token updated for the account Android789515", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.427693:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Updated accounts for microsoft", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.427861:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Updating the token for the account Android789515", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[314774:0707/210409.428010:INFO:CONSOLE(627)] "%cTRACE color: #888 Settings Sync: Token updated for the account Android789515", source: vscode-file://vscode-app/opt/visual-studio-code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (627)

Version: 1.81.0-insider Commit: ad791ef3d26b99963da31636af697afd86575435 Date: 2023-07-07T19:47:36.821Z Electron: 22.3.14 ElectronBuildId: 21893604 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Linux x64 6.4.1-arch2-1

I have gnome-keyring installed and it's not using it for some reason. Must be the update to 1.80.

Manually configuring the keyring to use results in this:

code-insiders --password-store="gnome"
Warning: 'password-store' is not in the list of known options, but still passed to Electron/Chromium.

It seems to work.

I figured this is a bug since I had gnome-keyring installed, it wasn't being used, and I had to manually configure it.

Konglomneshued commented 1 year ago

I tried to setup the runtime args according to the support article I listed: image

TylerLeonhardt commented 1 year ago

Can you please include the very top of the logs? The part that contains the stuff call out here:

https://code.visualstudio.com/docs/editor/settings-sync#_linux

Or even the whole log works.

TylerLeonhardt commented 1 year ago

Additionally, what desktop environment & window manager are you using?

GerritPlehn commented 1 year ago

For me this is happening on i3 on arch, also using gnome keyring.

[64727:0708/211450.886024:VERBOSE1:key_storage_util_linux.cc(54)] Password storage detected desktop environment: (unknown)
[64727:0708/211450.886034:VERBOSE1:key_storage_linux.cc(122)] Selected backend for OSCrypt: BASIC_TEXT
[64727:0708/211450.886044:VERBOSE1:key_storage_linux.cc(142)] OSCrypt did not initialize a backend.

Adding the "password-store": "gnome" argument worked fine.

Konglomneshued commented 1 year ago

Additionally, what desktop environment & window manager are you using?

Uh.. sorry I'll try to find the log file if they are kept. Also I'm using a similar setup as GerritPlehn, i3 on Arch.

Konglomneshued commented 1 year ago

Here is the main.log if that's the one you need.

TylerLeonhardt commented 1 year ago

Related: https://github.com/microsoft/vscode/issues/186792

Chromium failing to detect i3 seems to be the common thread

adityathebe commented 1 year ago

Getting the same error as well on bspwm.

dotfrag commented 1 year ago

Same issue on Sway and my gnome-keyring-daemon is correctly set-up.

Launching code with code --password-store="gnome" as suggested here works.

finlopes97 commented 1 year ago

Same issue here, using Ubuntu 23.04 with i3wm.

Jerry-Terrasse commented 1 year ago

Same for me. i3wm on Manjaro 23.0.0

maximilian-franz commented 1 year ago

Same for me, using EndeavourOS 6.4.1-arch2-1 and qtile.

error9900 commented 1 year ago

Same issue with an i5, and "password-store": "gnome" fixes it.

Version: 1.80.0 Commit: 660393deaaa6d1996740ff4880f1bad43768c814 Date: 2023-07-04T13:39:48.236Z Electron: 22.3.14 ElectronBuildId: 21893604 Chromium: 108.0.5359.215 Node.js: 16.17.1 V8: 10.8.168.25-electron.0 OS: Linux x64 5.15.108-18910-gab0e1cb584e1

Also getting this, even though it seems to be working: Property password-store is not allowed. in argv.json image

TylerLeonhardt commented 1 year ago

Something like this will help in a lot (if not all) of these cases and is something that we'll need in Electron. https://github.com/microsoft/vscode/issues/185212

That said, i3 might be big enough to be a detected environment which is why I haven't duped this to that issue.

elldritch commented 1 year ago

I'm seeing this issue as well on Arch running XMonad.

jssblck commented 1 year ago

I am also seeing this on Arch with XMonad using gnome-keyring.

This did not fix it:

❯ code --password-store "gnome" .
Warning: 'password-store' is not in the list of known options, but still passed to Electron/Chromium.

This did:

❯ cat ~/.vscode/argv.json
{
    "enable-crash-reporter": true,
    "crash-reporter-id": "<snip>",
    "password-store": "gnome"
}

System info:

❯ pfetch                  
       /\         jess@grace
      /  \        os     Arch Linux
     /\   \       host   x86_64
    /      \      kernel 6.4.2-arch1-1
   /   ,,   \     uptime 5h 8m
  /   |  |  -\    pkgs   537
 /_-''    ''-_\   memory 4205M / 64118M

❯ yay -Q --info gnome-keyring
Name            : gnome-keyring
Version         : 1:42.1-3
Description     : Stores passwords and encryption keys
Architecture    : x86_64
URL             : https://wiki.gnome.org/Projects/GnomeKeyring
Licenses        : GPL  LGPL
Groups          : gnome
Provides        : org.freedesktop.secrets
Depends On      : gcr  gcr-4  pam  openssh
Optional Deps   : None
Required By     : seahorse
Optional For    : git  github-cli  google-chrome  libsecret  microsoft-edge-stable-bin  slack-desktop  visual-studio-code-bin
Conflicts With  : None
Replaces        : None
Installed Size  : 3.55 MiB
Packager        : Balló György <bgyorgy@archlinux.org>
Build Date      : Wed 07 Jun 2023 03:41:13 AM PDT
Install Date    : Thu 08 Jun 2023 09:51:51 AM PDT
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : Signature

For reference, if helpful, in such systems it's common to start xmonad in this manner (this is my .xinitrc):

❯ cat .xinitrc 
#!/bin/sh

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f "$userresources" ]; then
    xrdb -merge "$userresources"
fi

if [ -f "$usermodmap" ]; then
    xmodmap "$usermodmap"
fi

if [ -d /etc/X11/xinit/xinitrc.d ] ; then
 for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
  [ -x "$f" ] && . "$f"
 done
 unset f
fi

# Start window manager, which manages the rest of the startup sequence.
# Compiled by `cabal install` in `~/.xmonad`.
exec /home/jess/.cabal/bin/xmonad

Finally, gnome-keyring is initialized on login via PAM:

❯ cat /etc/pam.d/login
#%PAM-1.0

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
auth       include      system-local-login
auth       optional     pam_gnome_keyring.so            <- here
account    include      system-local-login
session    include      system-local-login
session    optional     pam_gnome_keyring.so auto_start <- here
kymppi commented 1 year ago

Same happening on Arch with awesomewm. Adding "password-store": "gnome" to ~/.vscode/argv.json fixed the issue.

pgmorgan commented 1 year ago

Same happening on Ubuntu 22.04 with i3wm. Adding "password-store": "gnome" to ~/.vscode/argv.json fixed the issue.

ndmax commented 1 year ago

Same on Lubuntu 23.04 (LXQt) and adding "password-store": "gnome" to ~/.vscode/argv.json also resolves.

FirelightFlagboy commented 1 year ago

From #187436.

I'm using archlinux with hyprland as desktop environment. To manage my keyring I have installed kwallet.

The pop-up disappear when I set password-store to kwallet5.


Additionally I've configured dbus to start the service automatically by creating the file /usr/share/dbus-1/services/org.freedesktop.secrets.service with the content:

[D-BUS Service]
Name=org.freedesktop.secrets
Exec=/usr/bin/kwalletd5

I don't know if it's possible for vscode to use the service configured in org.freedesktop.secrets as keyring manager :thinking:

zaid-hassan commented 1 year ago

Got the same error in Xfce4, using gnome-keyring


Adding "password-store": "gnome" to ~/.vscode/argv.json solved it.

I am using:

❯ neofetch --stdout
zaid@archlinux
--------------
OS: Arch Linux x86_64
Host: 20DSS02V00 ThinkPad L450
Kernel: 6.1.38-1-lts
Uptime: 7 mins
Packages: 534 (pacman)
Shell: bash 5.1.16
Resolution: 1366x768
DE: Xfce 4.18
WM: Xfwm4
WM Theme: Default
Theme: Adwaita-dark [GTK2/3]
Icons: elementary [GTK2], Adwaita [GTK3]
Terminal: alacritty
CPU: Intel i3-5005U (4) @ 2.000GHz
GPU: Intel HD Graphics 5500
Memory: 1813MiB / 7832MiB
❯ gnome-keyring version
gnome-keyring: 42.1
BlueskyFR commented 1 year ago

It seems that last VsCode update broke everything for everyone not using a "standard" Linux distribution.

Same issue with Manjaro/i3 here, and the flag fixed it for me but is not satisfying

Coreyo-git commented 1 year ago

Fedora/i3wm, same issue.

kateract commented 1 year ago

Same issue on Debian 11 (ChromeOS)/aarch64 with version 1.80

argv.json password-store: gnome workaround successful.

Abastro commented 1 year ago

Ubuntu/xmonad, experiencing the same issue. password-store workaround works, but I'd like a more fundamental fix.

lepiku commented 1 year ago

Same happening on Arch with awesomewm. Adding "password-store": "gnome" to ~/.vscode/argv.json fixed the issue.

Same issue in Arch Linux with i3wm. Adding password-store also fixed it.

jasonmishi commented 1 year ago

Not sure if there is a use piling on at this point but same issue ArchLinux with qtile.

BoleynSu commented 1 year ago

vscode-server still not working with 1.80.1 on Fedora.

jwarkentin commented 1 year ago

Also happens on Chromebook. The password-store workaround did the trick.

kabeleh commented 1 year ago

Adding "password-store": "gnome" to my argv.json solved this issue on arch linux (kernel 6.4.3-arch1-2.1) with hyprland. Thank you very much for pointing this out!

melonmouse commented 1 year ago

Adding "password-store": "gnome" to ~/.vscode/argv.json worked for me on Fedora 37 with i3wm.

jerryyf commented 1 year ago

Unknown desktop environment on EndeavourOS / i3wm after running code --verbose --vmodule="*/components/os_crypt/*=1" :

[2592241:0718/220009.730877:VERBOSE1:key_storage_util_linux.cc(54)] Password storage detected desktop environment: (unknown)
[2592241:0718/220009.767071:WARNING:bluez_dbus_manager.cc(247)] Floss manager not present, cannot set Floss enable/disable.

Adding "password-store": "gnome" in ~/.vscode/argv.json also solves the issue here.

v4hn commented 1 year ago

Unsurprisingly, same with dwm on Debian trixie.

htqx commented 1 year ago

Mine is keepassxc , which can be fixed with "gnome-libsecret" . I am also an arch user, yay vscodium-bin-features can log in with a Microsoft account, just mention it.

Maybe this option name is a bit misleading.

Frontear commented 1 year ago

I use https://github.com/yousefvand/secret-service and for the longest time it did work fine, until whatever update broke everything. It still registers as a org.freedesktop.secrets compatible specification, yet still will not work. Pls fix guys

Arszilla commented 1 year ago

This issue is also present on code/stable,now 1.80.1-1689183569 on Kali Linux with i3 4.22 (2023-01-02).

As others mentioned, "password-store": "gnome" fixes this issue temporarily.

grybouilli commented 1 year ago

Issue present on code 1.80.1 on Fedora 38 with i3 version 4.22 (2023-01-02); fixed temporarily with the "password-store": "gnome" tweak.

paolomainardi commented 1 year ago

Came here, to say thank you for the workaround, facing the same issue on Arch + Sway.

flbbb commented 1 year ago

Same issue with sway on Arch Linux. According to this doc it seems we indeed need to setup the keyring. What I did:

Quite annoying to have to install gnome-keyring (or whatever supported keyring).

christoff-linde commented 1 year ago

Can confirm that manually adding "password-store": "gnome" to the argv.json file worked (on Arch Linux, BSPWM, VSCode 1.80.1).

Had to add the arg manually after running code with code --password-store="gnome" failed to work.

BlueskyFR commented 1 year ago

@TylerLeonhardt @deepak1556 can you provide an update on this issue?

kiosion commented 1 year ago

This only occured for me after an update to VSCode - nothing else was updated; I was using gnome-keyring on Arch w/ BSPWM previously without issue. Adding "password-store": "gnome" to argv fixed it.

BoleynSu commented 1 year ago

Any workaround for code-server? code-server 1.81.0 on Fedora 38 is still not working.

iosmanthus commented 1 year ago

Any workaround for code-server? code-server 1.81.0 on Fedora 38 is still not working.

vscode 1.81.0 is not working with this workaround.

[210343:0807/152610.540842:INFO:CONSOLE(762)] "You're running in a GNOME environment but the OS keyring is not available for encryption. Ensure you have gnome-keyring or another libsecret compatible imp
lementation installed and running.", source: vscode-file://vscode-app/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (762)  
[210343:0807/152610.541209:INFO:CONSOLE(627)] "%cTRACE color: #888 [secrets] encrypting secret for key: {"extensionId":"vscode.github-authentication","key":"github.auth"}", source: vscode-file://vscode-
app/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[main 2023-08-07T07:26:10.541Z] [EncryptionMainService] Encrypting value.
[main 2023-08-07T07:26:10.541Z] Error: Error while encrypting the text provided to safeStorage.encryptString. Encryption is not available.
    at R.encrypt (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:42:10994)
    at Object.call (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:25:4844)
    at P.s (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:23:5128)
    at P.q (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:23:4644)
    at o.value (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:23:4051)
    at b.w (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at b.x (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:1976)
    at b.fire (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:2192)
    at o.value (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:16:38681)
    at b.w (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at b.fire (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:2123)
    at o.value (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:16:38875)
    at b.w (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at b.fire (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:2123)
    at se (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:16:41018)
    at IpcMainImpl.f (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:19:96331)
    at IpcMainImpl.emit (node:events:513:28)
    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:2:80979)
    at EventEmitter.emit (node:events:513:28)

I am using NixOS + i3wm, and the gnome-keyring service is enabled.

jinnko commented 1 year ago

Same issue with sway on Arch Linux. According to this doc it seems we indeed need to setup the keyring. What I did:

* install `gnome-keyring` (since it wasn't installed by default with sway)
* add either  `"password-store"="gnome"` in `.vsode/argv.json` or `--password-store=gnome` in `.config/code-flags.conf`
* launch VSCode and setup a password for gnome-keyring

Quite annoying to have to install gnome-keyring (or whatever supported keyring).

Similar setup, but I don't use gnome-keyring - instead use another libsecret backend.

According to electron docs you can also pass other options, such as --password-store=gnome-libsecret - and this worked for me - without having to install gnome-keyring.

I then found that my ~/.vscode/argv.json contained password-store: basic - which I'm sure I didn't set - so updated that to gnome-libsecret to make the change permanent.

BlankParticle commented 1 year ago

I am using NixOS with gnome 44 and gnome-keyring, I recently updated to VSCode 1.81 and I am running into the same issue, previously mentioned fixes dont work in 1.81, I have tried with --password-store=gnome,--password-store=gnome-libsecret and even --password-store=gnome-keyring but none of them works, for now my only option is to use --password-store=basic because it is the only option that preserves my login.

I am getting this same error

vscode 1.81.0 is not working with this workaround.

[210343:0807/152610.540842:INFO:CONSOLE(762)] "You're running in a GNOME environment but the OS keyring is not available for encryption. Ensure you have gnome-keyring or another libsecret compatible imp
lementation installed and running.", source: vscode-file://vscode-app/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (762)  
[210343:0807/152610.541209:INFO:CONSOLE(627)] "%cTRACE color: #888 [secrets] encrypting secret for key: {"extensionId":"vscode.github-authentication","key":"github.auth"}", source: vscode-file://vscode-
app/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/workbench/workbench.desktop.main.js (627)
[main 2023-08-07T07:26:10.541Z] [EncryptionMainService] Encrypting value.
[main 2023-08-07T07:26:10.541Z] Error: Error while encrypting the text provided to safeStorage.encryptString. Encryption is not available.
    at R.encrypt (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:42:10994)
    at Object.call (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:25:4844)
    at P.s (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:23:5128)
    at P.q (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:23:4644)
    at o.value (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:23:4051)
    at b.w (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at b.x (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:1976)
    at b.fire (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:2192)
    at o.value (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:16:38681)
    at b.w (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at b.fire (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:2123)
    at o.value (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:16:38875)
    at b.w (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:1906)
    at b.fire (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:18:2123)
    at se (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:16:41018)
    at IpcMainImpl.f (/nix/store/9x3bq8mmzg15js30sm581y2am4idjbj6-vscode-1.81.0/lib/vscode/resources/app/out/vs/code/electron-main/main.js:19:96331)
    at IpcMainImpl.emit (node:events:513:28)
    at EventEmitter.<anonymous> (node:electron/js2c/browser_init:2:80979)
    at EventEmitter.emit (node:events:513:28)

I am using NixOS + i3wm, and the gnome-keyring service is enabled.

TylerLeonhardt commented 1 year ago

@BlankParticle your situation appears to be different because VS Code detected GNOME. Can you please open a new issue and follow our troubleshooting? https://code.visualstudio.com/docs/editor/settings-sync#_troubleshooting-keychain-issues

BlankParticle commented 1 year ago

@BlankParticle your situation appears to be different because VS Code detected GNOME. Can you please open a new issue and follow our troubleshooting? https://code.visualstudio.com/docs/editor/settings-sync#_troubleshooting-keychain-issues

I tried the troubleshooting guide, but nothing fixes this. I think it is an issue coming down from electron

TylerLeonhardt commented 1 year ago

@BlankParticle please open a new issue with the verbose logs that the troubleshooting guide talks about so we can dig deeper.

olatoft commented 1 year ago

Same on Sway WM. Launching with $ code --password-store="gnome" does not work, but adding "password-store":"gnome" to argv.json works.