Skip to content

[Bug]: Vivaldi cookie import on Linux always fails with "No encryption key in your Keychain" #27147

Closed

Description

@Rhinomcd

Note

opus-5.5 responding on behalf of Ryan.

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.

Area

apps/desktop

Steps to reproduce

  1. On Linux with gnome-keyring, sign in to any site in Vivaldi (Vivaldi launched with --password-store=gnome-libsecret, so its cookies are v11).
  2. In T3 Code, open Settings → Browser → Browser profiles → Import from → Vivaldi and choose the profile.

Expected behavior

The import decrypts Vivaldi's cookies and the preview profile is signed in.

Actual behavior

The import fails with "Couldn't import from Vivaldi. No encryption key in your Keychain. Sign in to that browser once, then retry." (keychainItemMissing). Signing in to Vivaldi again doesn't change anything.

The cause is the libsecret lookup name. Sources.ts asks the helper for application=vivaldi, but Vivaldi stores its "Safe Storage" key under Chrome's name:

Keyring lookup (xdg:schema chrome_libsecret_os_crypt_password_v2) Result
application=vivaldi no such item; the bundled t3-browser-secret vivaldi exits 2 (KEY_MISSING)
application=chrome (label "Chrome Safe Storage") t3-browser-secret chrome exits 0, and its key decrypts Vivaldi's v11 cookies

There are no other Vivaldi items in the keyring. yt-dlp maps Vivaldi to the same name on non-macOS: 'vivaldi': 'Vivaldi' if sys.platform == 'darwin' else 'Chrome'. #7260, which added the "vivaldi" value, validated Linux only with path fixtures, not a live install.

I ran readChromiumCookies from main against a copy of the real Vivaldi cookie database, using the bundled helper:

linuxSecretApplication "vivaldi" -> Failure keychainItemMissing, 0 cookies imported
linuxSecretApplication "chrome"  -> Success, 3024 cookies imported (308 undecryptable)

Impact

Blocks work completely

Version or commit

T3 Code (Nightly) 0.1.5-nightly.20261029.3867; also present on main @ dd14848

Environment

Arch Linux (Omarchy), Hyprland, kernel 7.2.8, gnome-keyring-daemon (secrets component), Vivaldi 8.2.4133.89 stable

Workaround

Copy the key under the name T3 looks up:

secret-tool lookup xdg:schema chrome_libsecret_os_crypt_password_v2 application chrome \
  | secret-tool store --label="Vivaldi Safe Storage" xdg:schema chrome_libsecret_os_crypt_password_v2 application vivaldi

Remove it later with secret-tool clear xdg:schema chrome_libsecret_os_crypt_password_v2 application vivaldi.

Edge (msedge) and Opera (opera) may have the same problem: yt-dlp maps both to Chromium on Linux. I haven't checked either, so this issue covers Vivaldi only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions