Skip to content

passkey incompatibility with keepassxc / bitwarden #523

@daaku

Description

@daaku

Description

I'm trying to migrate from BitWarden to a combination of KeePassXC on Linux and KeePassium on iOS. I've successfully imported my BitWarden data into KeePassXC, which is synced via Dropbox (native integration) to KeePassium. On Linux/KeePassXC, the Passkeys imported from BitWarden work as expected. These imported passkeys do not however work with KeePassium.

The behavior I see is that when the browser triggers a passkey get request via navigator.credentials.get, KeePassium shows me the iOS "Sign In to "website" with your passkey for "user"? prompt with the "Use Passkey" and "More Options" buttons. At this point, clicking "Use Passkey" does nothing - no error, no progress. Tapping the button just silently does nothing. I can keep tapping it and this dialog doesn't go away.

Clicking "More Options", then "More from KeePassium..." and "Continue" goes through the flow, but the Promise from navigator.credentials.get is rejected with the typical "not allowed or denied" error.

Adding a new passkey and using that works, this is just for imported passkeys from BitWarden. I'm trying to migrate my extended family for 9 to from BitWarden and having everyone create new keys isn't an appealing option.

The only noticeable difference I see in the additional attributes is KPEX_PASSKEY_FLAG_BE=1 and KPEX_PASSKEY_FLAG_BS=1. So I tried to manually add these to an entry I imported from BitWarden, but it didn't seem to help resolve the issue.

How to reproduce
Steps to reproduce the behavior:

  1. Go to https://www.passkeys.io/, create a passkey in BitWarden.
  2. Export your BitWarden data.
  3. Import it into KeePassXC.
  4. Open that DB in KeePassium.
  5. Try using that passkey on iOS Safari.

Expected behavior
Expected passkey to work.

Environment:

  • Device: iPhone 17 Pro
  • OS: iOS 26.5
  • KeePassium App Version: 2.5
  • KeePassXC Version: 2.7.12

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions