Skip to content

Browser extension on Linux/Wayland can't unlock with passkey unless popped out #20467

@freevatar

Description

@freevatar

Steps To Reproduce

Important:
It's not a duplicate of #19217

#15825 doesn't fix it

  1. Login
  2. Click "Lock now"
  3. Click "Unlock with Passkey"

Expected Result

Unlock with passkey works on Linux+Wayland

Actual Result

Unlock with passkey fails on Linux+Wayland

Additional Context

Description

Unlocking browser extension vault with a passkey fails on Linux+Wayland when extension is opened as the normal browser popup. The same unlock succeeds if the extension is popped out first.

System

Hyprland + Wayland + Chrome

RCA

Root cause is that Linux popout workaround is applied to passkey login but not passkey unlock

  • Log in with Passkey works
  • Unlock with Passkey fails when launched from Chrome extension toolbar popup
  • Unlock with Passkey works if I manually open extension as a top-level window
Good Flow

$ hyprctl clients
class: chrome-nngceckbapebfimnlniiiahkandclblb-Default
title: Bitwarden
initialClass: chrome-nngceckbapebfimnlniiiahkandclblb-Default
initialTitle: _crx_nngceckbapebfimnlniiiahkandclblb
Broken Flow

$ hyprctl clients
class:
title: PIN required
initialClass:
initialTitle: Passkeys & Security Keys

/login-with-passkey uses platformPopoutGuard(["linux"])

canActivate: [unauthGuardFn(unauthRouteOverrides), platformPopoutGuard(["linux"])],

/lock only uses lockGuard()

canActivate: [lockGuard()],

Fixed it locally, working on PR

Operating System

Linux

Operating System Version

Fedora 43

Web Browser

Chrome

Browser Version

Version 147.0.7727.137 (Official Build) (64-bit)

Environment Versions

Version: 2026.3.0

SDK: 'main (7637fdf)'

Server version: 2026.4.0

Issue Tracking Info

  • I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions