bitwarden / bitwarden/android

[PM-40235] `mysignins.microsoft.com/security-info` refuses to register a CTAP key-pair that VC 21686 accepts.

Open
#7,157 4 comments 0 reactions 0 assignees View on GitHub
app:password-manager bug-passkey
Dominant language
Kotlin
Stars
9.4k
Forks
1.1k
Avg merge
1d 14h
Merged PRs (30d)
67

Description

### Origin

Web (Browser)

### Web URL or App name

[`mysignins.microsoft.com/security-info`](https://mysignins.microsoft.com/security-info)

### Passkey Action

- [x] Creating new passkey (Registration)
- [ ] Signing in (Authentication)

### Build Information

~~~YAML
Β© Bitwarden Inc. 2015-2026

Version: 2026.6.0 (21686)
πŸ“± Fairphone FP5 πŸ€– 15@35 πŸ“¦ prod
🧱 commit: bitwarden/android/release/2026.6-rc56@cc9b7d3edf77f523433f6a8cda5577e56ae1a4e2
πŸ’» build source: bitwarden/android/actions/runs/27437870956/attempts/1
πŸ¦€ SDK: 3.0.0-7338-5bdc976f
🌩 Server: 2026.6.1 @ US
~~~

### Additional Information

As in [`clients/issues/21792`](https://github.com/bitwarden/clients/issues/21792#issue-4856749621), the problem is that it fails to register, on Microsoft's side:

Image

However, unlike where [`clients/issues/21201`](https://github.com/bitwarden/clients/issues/21201#issue-4641017352) applies, `bitwarden_flight_recorder4094515514079284772.zip/flight_recorder_2026-07-10_17-29-10.txt` contained:

~~~MA
Bitwarden Android - Password Manager
Log Start Time: 2026-07-10 17:29:10:601
Log Duration: 1h
App Version: 2026.6.0 (21686)
Build: release/standard
SDK Version: πŸ¦€ 3.0.0-7338-5bdc976f
CI Build Info: 🧱 commit: bitwarden/android/release/2026.6-rc56@cc9b7d3edf77f523433f6a8cda5577e56ae1a4e2
πŸ’» build source: bitwarden/android/actions/runs/27437870956/attempts/1
Device: πŸ“± Fairphone FP5 πŸ€– 15@35 πŸ“¦ prod
🌩 Server: Bitwarden Cloud 2026.6.1 @ US
Fingerprint: Fairphone/FP5/FP5:15/AQ3A.240912.001/VT2X:user/release-keys
2026-07-10 17:29:10:609 – DEBUG – m38 – RootNavScreen destination changed: com.x8bit.bitwarden.ui.platform.feature.vaultunlockednavbar.VaultUnlockedNavbarRoute in com.x8bit.bitwarden.ui.platform.feature.vaultunlocked.VaultUnlockedGraphRoute
2026-07-10 17:29:10:655 – DEBUG – m38 – VaultUnlockedNavBarScreen destination changed: com.x8bit.bitwarden.ui.platform.feature.settings.about.SettingsAboutRoute.Standard in com.x8bit.bitwarden.ui.platform.feature.settings.SettingsGraphRoute
2026-07-10 17:29:13:901 – DEBUG – AppStateManagerImpl$AppForegroundObserver – App is backgrounded
2026-07-10 17:29:43:596 – DEBUG – BitwardenCredentialProviderService – Create credential request received.
2026-07-10 17:29:48:895 – DEBUG – AppStateManagerImpl$AppForegroundObserver – App is foregrounded
2026-07-10 17:29:49:015 – DEBUG – m38 – MainActivity destination changed: com.x8bit.bitwarden.ui.platform.feature.overlaynav.OverlayNavRoute
2026-07-10 17:29:49:024 – DEBUG – m38 – OverlayNavScreen destination changed: com.x8bit.bitwarden.ui.platform.feature.rootnav.RootNavigationRoute
2026-07-10 17:29:49:088 – DEBUG – m38 – RootNavScreen destination changed: com.x8bit.bitwarden.ui.platform.feature.splash.SplashRoute
2026-07-10 17:29:49:139 – DEBUG – m38 – RootNavScreen destination changed: com.x8bit.bitwarden.ui.platform.feature.vaultunlockednavbar.VaultUnlockedNavbarRoute in com.x8bit.bitwarden.ui.platform.feature.vaultunlocked.VaultUnlockedGraphRoute
2026-07-10 17:29:49:150 – DEBUG – m38 – RootNavScreen destination changed: pab/{encodedData} in com.x8bit.bitwarden.ui.platform.feature.vaultunlocked.VaultUnlockedGraphRoute
2026-07-10 17:29:49:367 – DEBUG – wn6 – resolveHostname(icons.bitwarden.net): no stored config found, using original
2026-07-10 17:29:49:368 – DEBUG – wn6 – getCookies(icons.bitwarden.net): resolved=icons.bitwarden.net, count=0
2026-07-10 17:29:49:372 – DEBUG – wn6 – resolveHostname(icons.bitwarden.net): no stored config found, using original
2026-07-10 17:29:49:374 – DEBUG – wn6 – getCookies(icons.bitwarden.net): resolved=icons.bitwarden.net, count=0
2026-07-10 17:29:49:726 – DEBUG – wn6 – getCookies(icons.bitwarden.net): resolved=icons.bitwarden.net, count=0
2026-07-10 17:29:49:726 – DEBUG – wn6 – resolveHostname(icons.bitwarden.net): no stored config found, using original
2026-07-10 17:29:53:822 – DEBUG – wn6 – resolveHostname(icons.bitwarden.net): no stored config found, using original
2026-07-10 17:29:53:823 – DEBUG – wn6 – getCookies(icons.bitwarden.net): resolved=icons.bitwarden.net, count=0
2026-07-10 17:29:59:222 – DEBUG – BitwardenNetworkClient – --> PUT https://api.bitwarden.com/ciphers/ebff0d3f-aa06-4235-9bb1-b48301083c14 (6302-byte body)
2026-07-10 17:29:59:224 – DEBUG – wn6 – resolveHostname(api.bitwarden.com): no stored config found, using original
2026-07-10 17:29:59:225 – DEBUG – wn6 – needsBootstrap(api.bitwarden.com): false (cookieDomain=null)
2026-07-10 17:29:59:227 – DEBUG – wn6 – getCookies(api.bitwarden.com): resolved=api.bitwarden.com, count=0
2026-07-10 17:29:59:994 – DEBUG – BitwardenNetworkClient – <-- 200 https://api.bitwarden.com/ciphers/ebff0d3f-aa06-4235-9bb1-b48301083c14 (771ms, unknown-length body)
2026-07-10 17:30:00:882 – DEBUG – AppStateManagerImpl$AppForegroundObserver – App is backgrounded
2026-07-10 17:30:20:478 – DEBUG – AppStateManagerImpl$AppForegroundObserver – App is foregrounded
2026-07-10 17:30:20:506 – DEBUG – m38 – MainActivity destination changed: com.x8bit.bitwarden.ui.platform.feature.overlaynav.OverlayNavRoute
2026-07-10 17:30:20:512 – DEBUG – m38 – OverlayNavScreen destination changed: com.x8bit.bitwarden.ui.platform.feature.rootnav.RootNavigationRoute
2026-07-10 17:30:20:540 – DEBUG – m38 – RootNavScreen destination changed: com.x8bit.bitwarden.ui.platform.feature.vaultunlockednavbar.VaultUnlockedNavbarRoute in com.x8bit.bitwarden.ui.platform.feature.vaultunlocked.VaultUnlockedGraphRoute
2026-07-10 17:30:20:579 – DEBUG – m38 – VaultUnlockedNavBarScreen destination changed: com.x8bit.bitwarden.ui.platform.feature.settings.about.SettingsAboutRoute.Standard in com.x8bit.bitwarden.ui.platform.feature.settings.SettingsGraphRoute
~~~

### Issue Tracking Info

- [x] 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.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing passkey registration at mysignins.microsoft.com/security-info and inspect the BitwardenCredentialProviderService entries in the supplied flight recorder. Compare the behavior with clients/issues/21792 and clients/issues/21201; done means identifying an actionable Android-side mismatch with a regression test, or documenting that Microsoft's rejection is external.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, kotlin
Domain
authentication, mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.