mirror of
https://github.com/bitwarden/android.git
synced 2026-05-06 15:58:22 -05:00
[GH-ISSUE #6284] [PM-29960] HyperOS 3 CredentialSelectorActivity crashes with ClassCastException (Long to Integer) #39383
Open
opened 2026-04-23 18:14:02 -05:00 by GiteaMirror
·
5 comments
No Branch/Tag Specified
main
new-item-types/PM-32810_bank-account-discovery
pm-34038/card-scanner-qa-fixes
beta-for-qa
new-item-types/PM-32810_bank-account
target-sdk-37
PM-33982/build-device-screen
vvolkgang/update-jira-release-notes
new-item-types/PM-34123_new-item-menu
new-item-types/PM-32806_passport
new-item-types/PM-32808_drivers-license
BWA-99/show-next-totp
BWA-99/add-preview-next-totp-code-setting
renovate/glidecompose
chore/improve-android-ui-verification-skill
sync-min-sdk
release/2026.4-rc51
fix/security-sast-22741894-bvwj
related-origin-passkey-creation
release/2026.4-rc50
platform/android-breaking-change-detection
innovation-sprint-2026-send-folder
release/2026.3-rc49
PM-34193-vault-lockout
android-collections
llm/add-resolving-sdk-updates-skill
QA-1523/sanity-test-saucelabs
release/2026.3-rc48
PM-26577-app-links-support
PM-26896-autofill-fix
release/2026.2-rc47
pr-6572
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
PM-28468/validate-and-navigate-to-vault-migration
PM-20026/force-ltr-passwords-and-codes
release/2025.12-rc41
cmcg/testCoverage
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
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
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
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
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.4.0-bwa
v2026.4.0-bwpm
v2026.3.1-bwa
v2026.3.1-bwpm
v2026.3.0-bwpm
v2026.3.0-bwa
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#39383
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 @bbxblue on GitHub (Dec 19, 2025).
Original GitHub issue: https://github.com/bitwarden/android/issues/6284
Origin
Native Application (non-browser app)
Web URL or App name
webauthn.io
Passkey Action
Build Information
2025.12.0
Additional Information
1. Description:
On Xiaomi 15 (HyperOS 3 CN, Android 16), Bitwarden is unable to complete the Passkey authentication or registration flow when system biometrics (Fingerprint/Face) are enabled. The system's
com.android.credentialmanagercomponent crashes immediately upon trying to show the selector UI.2. Steps to Reproduce:
TYPE_NO_CREDENTIALor cancellation error.3. Expected Behavior:
The system credential selector should appear, allowing the user to select the Bitwarden credential and authenticate via biometrics.
4. Actual Behavior:
The system component
com.android.credentialmanagercrashes due to aClassCastException.5. Root Cause Analysis (from Logcat):
The crash occurs in the system's biometric pre-validation logic. Android 15 has updated certain
SliceItemfields toLong, but Xiaomi'sCredentialSelectorActivityimplementation still callsgetInt(), causing a type mismatch.6. Supporting Logcat Trace:
7. Critical Finding:
Disabling all system biometrics (removing fingerprints/face data) resolves the crash, and the Bitwarden selector UI appears correctly.
Issue Tracking Info
@bitwarden-bot commented on GitHub (Dec 19, 2025):
Thank you for your report! We've added this to our internal board for review.
ID: PM-29960
@Adedamola-Aina commented on GitHub (Dec 23, 2025):
Hello @bbxblue
I am unable to reproduce this issue, it has been escalated for further investigation. If you have more information that can help us, We use GitHub issues as a place to track bugs and other development related issues. If your issue persists, please write us back using our “Contact support” form located on our Help Center (https://bitwarden.com/help/).
You can include a link to this issue in the message content.
Alternatively, you can also search for an answer in our help documentation or get help from other Bitwarden users on our community forums (https://community.bitwarden.com/c/support/).
@Gavin-Guiii commented on GitHub (Jan 2, 2026):
Hello @Adedamola-Aina ,
I did some further testing and investigation. Could you please forward the following information to the development team? It might help them locate the issue.
AOSP's Credential Manager is using
getLongto read theCRYPTO_OP_ID(See Line 252).Xiaomi somehow decided to implement its own Credential Manager, and the decompiled code suggests that it's using
getIntto read the sameCRYPTO_OP_ID(See line 371).So it's causing the
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integerexception mentioned in this issue.One way to quickly fix it is to assume Xiaomi doesn't support Android's integrated biometric prompt in Bitwarden's CredentialEntryBuilderExtensions so Xiaomi's faulty logic will be skipped. Users will still be directed to Bitwarden app to do authentication so there's not a big UX difference. Alternatively, maybe we can add a
Biometrics Compatibility Modesettings somewhere in the Bitwarden app?Totally understand this is completely Xiaomi's fault but they refuse to acknowledge and fix the issue. But considering Xiaomi has a ~15% marketshare globally, maybe it wouldn't hurt for Bitwarden to do a patch for Xiaomi devices? If the team is busy with other tasks, I can also do a quick PR to patch this up but please let me know which way the team would like to proceed with. It would significantly benefit all Xiaomi users.
By the way, Proton Pass is working fine because they didn't implement Android's BiometricPrompt.
@SaintPatrck commented on GitHub (Jan 6, 2026):
Hi @Gavin-Guiii
Thanks for the extra research and details. It has been very helpful. Question for you since I don't have access to a Xiaomi device; does the default biometric prompt still work as expected to unlock your vault and phone, or are all biometric prompts broken on Xiaomi devices? That will drive how we decide to address the issue.
@Gavin-Guiii commented on GitHub (Jan 6, 2026):
Hi,
Thanks for getting back to me.
All the other prompts still work as expected. The issue only happens when we
setBiometricPromptDataonPublicKeyCredentialEntry.Builder.Sorry I just realized I made a typo in my previous comment. What I meant to say is BiometricPromptData (not
BiometricPrompt) is causing the issue. Proton Pass didn't use this so it's working on Xiaomi devices, but Bitwarden has implemented it here.Kudos to Bitwarden for using this new Android API though. It's working perfectly on my other Android phones. Xiaomi just had to change it and break it.
Thanks again for taking your time to look into this issue. We wouldn't bother you guys if we had other options. I heard someone who even complained this bug to the chinese government but Xiaomi still refused to fix it...