[PM-31493] Failed to create a new passkey for MyJCB Android app
- Dominant language
- Kotlin
- Stars
- 9.4k
- Forks
- 1.1k
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 67
Description
### Origin
Native Application (non-browser app)
### Web URL or App name
jp.co.jcb.my
### Passkey Action
- [x] Creating new passkey (Registration)
- [ ] Signing in (Authentication)
### Build Information
Version: 2026.10 (21141)
Operating System: 16 (36)
Device: samsung SM-F956Q
### Additional Information
The app is for a credit card user issued by JCB, so it'd be difficult to reproduce this in developers' environment (unless they have a JCB issued credit card)
How to reproduce
1. Run MyJCB app
2. Click "MyPage" link in the bottom bar
3. Scroll down to "Application Config" menu, and click "Login configuration" menu
4. Click "Passkey" button
5. Click "Register" button
6. Bitwarden shows a pop up dialog to create a passkey
7. Fingerprint authentication to start Bitwarden app
8. Create a new login data and save it
9. Bitwarden app is closed, and move back to the MyJCB app
10. Failure dialog is shown
According to the flight log captured in Bitwarden Android app, Digital asset link validation succeeded.
```
Digital asset link validation result: linked = true
```
However, Bitwarden SDK throws an exception `com.bitwarden.fido.Fido2ClientException$InvalidOrigin: Invalid origin: InvalidAssetLinkUrl` immediately after that.
Full stack trace
```
WARNING – p0 – com.bitwarden.sdk.BitwardenException$Fido2Client: v1=com.bitwarden.fido.Fido2ClientException$InvalidOrigin: Invalid origin: InvalidAssetLinkUrl
at com.bitwarden.sdk.FfiConverterTypeBitwardenError.read(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:15)
at com.bitwarden.sdk.FfiConverterTypeBitwardenError.read(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1)
at com.bitwarden.sdk.FfiConverter$DefaultImpls.liftFromRustBuffer(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:13)
at com.bitwarden.sdk.FfiConverterRustBuffer$DefaultImpls.liftFromRustBuffer(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:6)
at com.bitwarden.sdk.FfiConverterTypeBitwardenError.liftFromRustBuffer(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1)
at com.bitwarden.sdk.FfiConverterTypeBitwardenError.liftFromRustBuffer(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:2)
at com.bitwarden.sdk.FfiConverterRustBuffer$DefaultImpls.lift(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:6)
at com.bitwarden.sdk.FfiConverterTypeBitwardenError.lift(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1)
at com.bitwarden.sdk.FfiConverterTypeBitwardenError.lift(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:2)
at com.bitwarden.sdk.BitwardenException$ErrorHandler.lift(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:2)
at com.bitwarden.sdk.BitwardenException$ErrorHandler.lift(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1)
at com.bitwarden.sdk.Bitwarden_uniffiKt.uniffiCheckCallStatus(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:79)
at com.bitwarden.sdk.Bitwarden_uniffiKt.access$uniffiCheckCallStatus(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1)
at com.bitwarden.sdk.Bitwarden_uniffiKt.uniffiRustCallAsync(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:186)
at com.bitwarden.sdk.ClientFido2Client.register$suspendImpl(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:122)
at com.bitwarden.sdk.ClientFido2Client.register(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1)
at androidx.lifecycle.n0.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:111)
at androidx.lifecycle.n0.invokeSuspend(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:104)
at androidx.lifecycle.n0.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:69)
at kv.e.c(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:51)
at kv.c.c(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:59)
at h4.q0.invokeSuspend(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:382)
at xr.a.resumeWith(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:8)
at hv.j0.run(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:115)
at hv.v0.v0(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:24)
at hv.k.o(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:93)
at hv.k.q(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:3)
at jv.i.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:7)
at jv.g.I(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:76)
at jv.g.i(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:53)
at jv.g.h(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:97)
at com.bitwarden.ui.platform.base.BaseViewModel.trySendAction(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:3)
at np.v4.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:145)
at com.bitwarden.ui.platform.components.util.ThrottledClickKt$throttledClick$1$1$1.invokeSuspend(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:41)
at xr.a.resumeWith(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:8)
at hv.j0.run(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:115)
at h4.u0.q0(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:24)
at h4.t0.run(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:3)
at android.os.Handler.handleCallback(Handler.java:995)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loopOnce(Looper.java:273)
at android.os.Looper.loop(Looper.java:363)
at android.app.ActivityThread.main(ActivityThread.java:10060)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:632)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
```
### 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
Assessment
This issue has not been assessed yet.