bitwarden / bitwarden/android

[PM-41044] Passkeys import from other app doesn't work on Android 17

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

Description

### Steps To Reproduce

On a Google Pixel 10a with android 17
Go to settings/vault/import/import from other app

### Expected Result

A dialog appear to select the source for importing passwords and passkeys

### Actual Result

an error dialog box appear:

Stacktrace:
androidx.credentials.providerevents.exception.ImportCredentialsNoExportOptionException: No export provider option found.
androidx.credentials.providerevents.internal.ConversionUtilKt.toJetpackGetException(r8-map-id-1f8bafc4fe8bd4de511a6c3a52df51ef1ab635466d0492b4af968acec738e007:82)
androidx.credentials.providerevents.exception.ImportCredentialsException$Companion.fromBundle$providerevents(r8-map-id-1f8bafc4fe8bd4de511a6c3a52df51ef1ab635466d0492b4af968acec738e007:18)
androidx.credentials.providerevents.IntentHandler$Companion.retrieveImportCredentialsException(r8-map-id-1f8bafc4fe8bd4de511a6c3a52df51ef1ab635466d0492b4af968acec738e007:16)
androidx.credentials.providerevents.playservices.controller.ImportCredentialsController$Companion.maybeReportErrorResultCode(r8-map-id-1f8bafc4fe8bd4de511a6c3a52df51ef1ab635466d0492b4af968acec738e007:41)
androidx.credentials.providerevents.playservices.controller.ImportCredentialsController.handleImportCredentialsResponse(r8-map-id-1f8bafc4fe8bd4de511a6c3a52df51ef1ab635466d0492b4af968acec738e007:19)
androidx.credentials.providerevents.playservices.controller.ImportCredentialsController.access$handleImportCredentialsResponse(r8-map-id-1f8bafc4fe8bd4de511a6c3a52df51ef1ab635466d0492b4af968acec738e007:1)
androidx.credentials.providerevents.playservices.controller.ImportCredentialsController$resultReceiver$1.onReceiveResult(r8-map-id-1f8bafc4fe8bd4de511a6c3a52df51ef1ab635466d0492b4af968acec738e007:25)
android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:51)
android.os.Handler.handleCallback(Handler.java:1095)
android.os.Handler.dispatchMessageImpl(Handler.java:135)
android.os.Handler.dispatchMessage(Handler.java:125)
android.os.Looper.loopOnce(Looper.java:296)
android.os.Looper.loop(Looper.java:397)
android.app.ActivityThread.main(ActivityThread.java:9523)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:575)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:939)

Version: 2026.7.0 (21756)
Device: 📱 google Pixel 10a 🤖 17@37 📦 prod
CI: 🧱 commit: bitwarden/android/release/2026.7-rc58@36c892e1887b5051270ead6021afb16420663566
💻 build source: bitwarden/android/actions/runs/29108828120/attempts/1

### Screenshots or Videos

_No response_

### Additional Context

_No response_

### Build Version

2026.7.0 (21756)

### What server are you connecting to?

EU

### Self-host Server Version

_No response_

### Environment Details

Google Pixel 10a
Android 17

### 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.

Contributor guide

Open the contributing guide

Research direction

Start at Settings > Vault > Import > Import from other app and reproduce the failure on Android 17, then trace the import flow around ImportCredentialsNoExportOptionException and ImportCredentialsController in the stack trace. Done means the source-selection dialog appears and passkey import can proceed on the reported device and version.

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
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.