mirror of
https://github.com/bitwarden/android.git
synced 2026-03-09 11:44:41 -05:00
Bitwarden Beta does not present Passkey, but Bitwarden Legacy does. #1997
Open
opened 2025-11-26 23:04:05 -06:00 by GiteaMirror
·
19 comments
No Branch/Tag Specified
main
gh-readonly-queue/main/pr-6618-6473d54f16ae71d459ce94d4a57b6d317031a18b
remove-remember-viewmodel
sdlc/sdk-update
update-protobufs
PM-33266-crashlytics-bug
PM-32123/cookie-sync-error-message
PM-29861-update-overflow-content-description
PM-33227/clear-cookies-debug-button
update-agp
PM-26059-remove-cipher-key-encryption-flag
PM-29871-external-links
PM-29673/flight-recorder-export-header-info
renovate/lock-file-maintenance
release/2026.3-rc48
PM-24380/flight-recorder-redact-hostname
release/2026.2-rc47
PM-32714/fallback-to-web-vault-host
pr-6572
PM-28834/setting-app-layout-horizonos
PM-26896-autofill-fix
vvolkgang/process-release-notes-v2
PM-26577-app-links-support
release/2026.2-rc46
release/2026.1-rc45
PM-30644/added-logs-for-debug
PM-30644/quicktile-nav-not-showing-migration
minor-gradle-updates
release/2026.1-rc42
release/2026.1-rc44
release/2026.1-rc43
PM-28834/set-landscape-on-horizonos-devices
context-rules
devclarity/update-code-review-command
PM-20026/force-ltr-passwords-and-codes
release/2025.12-rc41
cmcg/testCoverage
claude-skill/creating-feature-flags
PM-29014/talkback-support-for-passwords
release/2025.12-rc40
BRE-1305/publish_test
accept-user-certs
autofill-permissions
release/2025.11-rc39
PM-22479/check-all-certificates-validate-asset-links
release/2025.10-rc38
agalles/android-latest
optimize-test-workflows
tier2-test-sharding
retro-agent
PM-27001/skip-account-selection-only-one-exists-cxp
release/2025.10-rc37
agalles/test-1118
release/2025.10-rc36
PM-20593-token-refresh
QA-1126b/adding-native-sanity-test
release/2025.9-rc35
pm-25933/sdk-update-password
release/2025.9-rc34
release/2025.8-rc33
agalles/20250821-release
debug-release-issues
pm-24249-allow-automated-prs-for-sdk-updates
release/2025.8-rc32
release/WORKFLOW-TEST-2025.8-rc28
agalles/20250807release
release/2025.07-rc25
release/hotfix-v2025.7.0-bwa
pm-23311/export-vault-policy-bypass
release/2025.07-rc24
authenticator-pm-sync-flags-issue
ps/implement-sdk-repository-example
release/hotfix-v2025.6.0-bwpm
release/2025.06-rc21
agalles/automate-android-fastlane-patch
release/2025.05-rc20
release/2025.04-rc19
languages/basque
release/2025.03-rc19
update-readme
qrcode/feature
innovation/archive/pm-19153-archive-items
qrcode/2-ui-fields
qrcode/1-page
hold-on-biometric-prompt-alternative
release-notes-process
release/2025.02-rc16
bwa-monorepo
PM-8223/new-device-verification-ux-improvements
pm-18451/exempt-from-policies
test-bwa
cs-workaround-linked-0-copy
release/2025.01-rc15
release/2025.01-rc14
release/2024.12-rc13
pm-16670/sync-leave-notice
821
PM-16695/backport-lean-more-new-device-verification
km/15084-testing
release/hotfix-v2024.11.7
release/2024.11-rc1
pm-11304/collection-add-item-button
PM-14241/disabling-logs-app-crash
poc/offline-editing
new-version-calc
pm-11649/expired-link-services
pm-6702/add-feature-flag
pm-6702/email-verification-feature
pm-9933/marketing-copy-update
pm-6702/registration-flows
update-templates
pm-6701/email-verification-selfhost-registration
v2026.2.1-bwpm
v2026.2.1-bwa
v2026.2.0-bwpm
v2026.2.0-bwa
v2026.1.1-bwa
v2026.1.1-bwpm
temp-test
v2026.1.0-bwpm
v2026.1.0-bwa
v2025.12.1-bwa
v2025.12.1-bwpm
v2025.12.0-bwa
v2025.12.0-bwpm
v2025.11.1-bwpm
v2025.11.1-bwa
v2025.11.0-bwpm
v2025.11.0-bwa
v2025.10.1-bwa
v2025.10.1-bwpm
v2025.10.0-bwa
v2025.10.0-bwpm
v2025.9.1-bwa
v2025.9.1-bwpm
v2025.9.0-bwa
v2025.9.0-bwpm
v2025.8.1-bwa
v2025.8.1-bwpm
v2025.8.0-bwa
v2025.8.0-bwpm
v2025.7.2-bwa
v2025.7.2-bwpm
v2025.7.1-bwa
v2025.7.1-bwpm
v2025.7.0-bwa
v2025.7.0-bwpm
v2025.6.1-bwpm
v2025.6.0-bwa
v2025.6.0-bwpm
v2025.1.0-bwa
v2025.5.0-bwa
v2025.5.0-bwpm
v2025.5.999
2025.4.0
v2025.4.0
untagged-4731eaadac73f3dfbbb8
v2025.3.0
v2025.2.0
untagged-815a165c5d70ffe75bc7
v2025.1.2
v2025.1.1
v2025.1.0
v2024.12.0
untagged-5a76b6392a4c8998c63a
v2024.11.7
v2024.11.6
v2024.11.5
v2024.11.4
v2024.11.3
v2024.11.2
v2024.11.1
v2024.11.0
v2024.10.2
v2024.10.1
v2024.10.0
v2024.9.0
v2024.8.1
v2024.8.0
v2024.7.3
v2024.7.2
v2024.7.1
v2024.7.0
v2024.6.1
v2024.6.0
v2024.5.1
v2024.4.1
v2024.4.2
v2024.4.0
v2024.3.3
v2024.3.1
v2024.3.0
v2024.2.1
v2024.2.0
v2024.1.1
v2024.1.0
v2023.12.0
v2023.10.0
v2023.9.2
maui-single-project-android
v2023.9.1
v2023.9.0
v2023.8.0
v2023.7.0
v2023.5.0
v2023.4.0
v2023.3.2
v2023.3.1
v2023.3.0
v2023.2.0
v2023.1.0
v2022.11.0
v2022.10.0
v2022.9.1
v2022.9.0
v2022.8.0
v2022.6.2
v2022.6.1
v2022.6.0
v2022.05.0
v2.18.0
v2.17.0
v2.16.4
v2.16.3
v2.16.2
v2.16.1
v2.15.0
v2.14.2
v2.14.1
v2.14.0
v2.13.0
v2.12.0
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.0
v2.9.1
v2.9.0
v2.8.2
v2.8.1
v2.8.0
v2.7.2
v2.7.0
v2.6.1
v2.6.0
v2.5.6
v.2.5.5
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.8
v2.2.7
v2.2.6
v2.2.2
v2.2.1
v2.2.0
v2.1.2
v2.1.0
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v1.22.1
v1.22.0
v1.21.0
v1.20.0
v1.19.0
v1.18.1
v1.18.0
v1.17.0
v1.16.0
v1.15.2
v1.15.1
v1.15.0
v1.14.4
v1.14.1
v1.14.0
v1.13.0
v1.12.2
v1.12.1
v1.12.0
v1.11.1
v1.11.0
v1.10.0
v1.9.0
v1.8.1
v1.8.0
v1.7.0
v1.6.5
v1.6.1
v1.6.0
v1.5.1
v1.5.0
v1.4.4
v1.4.3
v1.4.0
v1.3.0
v1.2.1
v1.2.0
v1.1.0
v1.0.0
v0.0.6
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.1
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/android#1997
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @BJReplay on GitHub (Sep 5, 2024).
Bitwarden Beta
Steps To Reproduce
Then open the banking app that will prompt for a Passkey
Expected Result
Bitwarden Beta should be presented as holding the Passkey for the banking app.
Actual Result
Only Bitwarden is displayed as holding the Passkey for the banking app.
Screenshots or Videos
This screen recording shows the About Screen (confirming the latest beta), confirms that Passkey settings are set with Bitwarden Beta set as preferred, and shows the banking app being opened, but only Bitwarden is offering the passkey.
https://github.com/user-attachments/assets/0b29ff60-e428-4149-a638-f18145d1c6e2
The screenshot shows the cipher showing the passkey.
The cipher is the same cipher that is available to both the Bitwarden Beta and Bitwarden apps.
Additional Context
Note that I have already raised an issue under bitwarden/mobile (see https://github.com/bitwarden/mobile/issues/3377) as Bitwarden displays the Username rather than the Display Name - however, when attempting to determine whether that issue now exists under Bitwarden mobile, I encountered this issue instead - Bitwarden Android Native simply doesn't appear.
Build Version
2024.8.1 (19099)
Environment Details
Samsung Galaxy S22 Ultra

S908EXXSAEXGD
A14
1 August 2024 Google Play System Update
Issue Tracking Info
@bitwarden-bot commented on GitHub (Sep 5, 2024):
Thank you for your report! We've added this to our internal board for review.
ID: PM-11671
@daniellbw commented on GitHub (Sep 10, 2024):
Hi there,
I am unable to reproduce this issue, it has been escalated for further investigation. If you have more information that can help us, please add it below.
Thanks!
@BJReplay commented on GitHub (Sep 10, 2024):
I'm not sure what else I can add that will help.
The same cipher with the same passkey is available in both Bitwarden and Bitwarden beta on the same device.
Both Bitwarden and Bitwarden beta are enabled to respond to passkey requests, and both respond to other applications.
The prior version of Bitwarden beta did respond to this banking app - but I was unable to log in - so I guess this is additional information.
I guess I can extract the passkey from the cipher and redeact some of the information to share it, but I'm not sure that that will help.
@BJReplay commented on GitHub (Sep 22, 2024):
Hi @daniellbw I can now add more information.
I managed, once to repro the issue with an error message once that I couldn't capture due to screen capture prevention, and haven't been able reproduce, but I have now been able to experiment enough to be confident enough to provide additional information.
In an attempt to repro another issue, I downloaded and ran the beta from the artifacts from https://github.com/bitwarden/android/actions/runs/10965438942.
As noted in https://github.com/bitwarden/mobile/issues/3377 the provider (ubank) is a neobank (digital only) and is rapidly moving towards passkey based authentication.
They (as noted in legacy issue 3377) us both userDisplayName and userName in the fido2Credentials, and this causes issues for Bitwarden (both legacy and native) apps when presenting the credential, as both apps display the userName field, rather than the userDisplayName field.
However, the error message that I saw when selecting the credential was something like "Invalid - Incorrect User Name".
I have just created a new passkey against a new cipher in a different vault, and I think this is why the native client is failing.
Below is a somewhat redacted dump of the cipher. I have redacted the same section of the username of the cipher and the userName of the fido2Credentials - but the unredacted GUIDs are identical.
I believe that the reason that the native Bitwarden isn't presenting the passkey is because the ubank app is requesting them in such a way that it expects (or is seaching for) credentials that match both a cipher and fido2Credentials for the userName. Because they don't match, nothing is presented.
Obviously I have redacted the keyValue, credentialId, and userHandle from the fido2Credentials .
Note that Android legacy presents credentials (presumably based on application matching) and I am able to log in.
Note in particular:
From fido2Credentials:
"userName": "c8b2c7d0-redacted-7b90e3c3cb37",From cipher:
"username": "c8b2c7d0-redacted-7b90e3c3cb37",The redacted portions of the GUID are the same - this is a ubank allocated UserName, and is what is allocated as username when I allow Bitwarden Native to create a passkey against a new cipher running 2024.9.0 (19184).
@BJReplay commented on GitHub (Sep 22, 2024):
I think the final piece in the puzzle about the passkey not being presented may be the way the app appears - when it fails passkey authentication, and falls back to password, bitwarden native won't match the app - it says it has no matching items for app bank86400. If I search for the cipher manually, and accept the option to auto-fill and save, a new URI is added for
https://bank86400. This still doesn't match on subsequent attempts, so multiple new URIs are added, each withhttps://bank86400as the match URI.I'm sure a lot of this is down the to the Ubank (who were once known as 86400) developers reading the URI and thinking "Oh, I can do this, I will do this - I can have different userNames and userDisplayNames so I may as well, and I can have a different android app ID and a different match ID, because that's all in the spec, so let's do it, but this is the first app where your native app is choking, but the legacy app isn't.
@BJReplay commented on GitHub (Sep 24, 2024):
@daniellbw I have captured additional screenshots of the sequence that occurs now that I've set the username of my cipher to the GUID that the ubank app is expecting - so it now allows the ubank app to allow Bitwarden Native to present a passkey whereas it previously could not.
This is with app version 2024.9.0 (19187) (beta) downloaded from artifacts from build action https://github.com/bitwarden/android/actions/runs/11001927746
However, it still fails to authenticate - but the error messages are now more useful with these later builds than the official build which was just a failure presented by the Ubank app, rather than error message from the bitwarden app as shown below...
The first error that is displayed (after selecting Bitwarden Native Beta as the passkey source and authenticating with biometrics) is:
The second error, after clicking on OK, is then displayed:
Finally, after clicking on OK, the matching Login is displayed:
@markcs commented on GitHub (Oct 21, 2024):
Excellent reporting and debugging on this issue.
Waiting patiently for a fix as ubank only allows 4 passkeys and I've been locked out a few times due to this bug.
@BJReplay commented on GitHub (Oct 21, 2024):
Hopefully they come up with one @markcs as it's gone all quiet here, and they're due to come out of beta on Thursday, and I haven't seen a commit that suggests they've closed it.
@BJReplay commented on GitHub (Nov 5, 2024):
I have tried to re-test with the v2024.10.2 release by manually installing com.x8bit.bitwarden.beta.apk from the https://github.com/bitwarden/android/releases/tag/v2024.10.2 since the early access from the app store hasn't been updated yet.
However it simply doesn't allow me to set it up as a passkey provider.
I don't know if that is because of the way it was installed (i.e. from a download, rather than from the app store), because I installed the beta apk (because I could not afford to lose access to legacy bitwarden app given that I can't log into my bank using the native bitwarden app betas so far, which would have happened if I used the non-beta apk), but v2024.10.2 simply would not present as a passkey provider.
@daniellbw Will the Bitwarden Beta (Early Access) version in the Google Play Store be updated so that issues such as this can be re-tested on the "release version" through official channels?
@BJReplay commented on GitHub (Nov 7, 2024):
Hi, I have just confirmed that this is still present in v2024.11.1
@Molenaar2 commented on GitHub (Nov 10, 2024):
I have the same issue and cannot login to UBank. I created a separate issue, but will close that one and mark it as a duplicate of this one
One additional comment, we have two UBank accounts in the vault (one in private vault and one in organisation) and the old Android app showed a pop-up too select the required passkey to be used for login. However, the pop-up showed the cyphers, not the usernames, making it hard to pick the right account. It would be great if the pop-up would show the usernames.
@Felitendo commented on GitHub (Nov 11, 2024):
I'm also having the same issue
@BJReplay commented on GitHub (Dec 22, 2024):
@daniellbw I have reproduced this issue with https://github.com/bitwarden/android/releases/tag/v2024.12.0
The following sequence of images show the sign in process where I have:
All installed and accessing the same vault.
I can log into Ubank successfully using Bitwarden legacy and Keyguard.
Bitwarden native now attempts to log in, but fails.
After selecting Bitwarden Beta, I get a message: "Passkey operation failed because user could not be verified."
After hitting OK, I get a second message: "We were unable to process your request. Please try again or contact us."
A search for those strings uncovers them in the Bitwarden code base (so they're undoubtedly coming from Bitwarden rather than the bank):
6223f362c3/app/src/main/res/values/strings.xml (L938)and6223f362c3/app/src/main/res/values/strings.xml (L698)Again:
@BJReplay commented on GitHub (Jan 13, 2025):
@daniellbw this issue is still an issue with 2025.1.0 (19622) https://github.com/bitwarden/android/releases/tag/v2025.1.0 - with this version, Bitwarden legacy and Keyguard both present a passkey, but Bitwarden native does not - so we're back to the original described issue:
Expected Result
Bitwarden Beta should be presented as holding the Passkey for the banking app.
Actual Result
Only Bitwarden (and KeyGuard) is displayed as holding the Passkey for the banking app.
@pamperer562580892423 commented on GitHub (Jan 31, 2025):
@daniellbw Could it be that this whole problem with "Ubank" also has to do with ubank restricting passkey creation? According to their website (https://www.ubank.com.au/help/current/app-and-online-banking/passkeys/what-are-passkeys - see the screenshot below my text), they allow it only for Android and iOS devices, indicating they have some restrictions set in place - and that could be also a hindrance for working with a third-party passkey provider?!
PS: According to the Bitwarden help sites (https://bitwarden.com/help/storing-passkeys/#tab-android-3XutklkReT3Gw0l1qHhBem), at least for Android it is also said, that passkeys supporting apps on Android is not yet implemented:
Maybe this is an additional problem here?
@d-rez commented on GitHub (Jan 31, 2025):
This is impacting many users now that Bitwarden has updated to the new design in December.
Birwarden is unable to automatically match credentials for the ubank app (displays there's none even though there are, and selecting the option to Auto-fill and save only creates duplicate URLs under the entry).
Birwarden is also unable to use any saved passkeys for ubank app, even if they're created fresh before the login attempt
@BJReplay commented on GitHub (Jan 31, 2025):
@pamperer562580892423 whilst Ubank says a lot of things on their website, testing proves that this is down to a failure in the implementation of the android (native) app:
The same passkey created by Ubank and stored in Bitwarden legacy can't be used by Bitwarden native.
There are other issues raised where other users have identified issues with application matching, and with testing passkey testing sites against the native client that don't exist in the legacy client.
It is undoubtedly the client that is broken.
@calvinbui commented on GitHub (Jan 31, 2025):
Agree, I am able to set up a a 2nd passkey in ubank so I'm using Samsung Pass as a workaround in meantime.
@calvinbui commented on GitHub (May 3, 2025):
Working for me now on 2025.4.0