🐛 Bug Report: Passkey doesn't get saved on Firefox Mobile, Android 13 #270

Closed
opened 2025-10-07 00:08:03 +03:00 by OVERLORD · 18 comments
Owner

Originally created by @000yesnt on GitHub.

Reproduction steps

After adding a new passkey through Firefox Mobile on Android 13, log out and try to log back in.

Expected behavior

Android shows me that I have a passkey available; the passkey appears on Google's Password Manager. Example video recorded on Chrome:

https://github.com/user-attachments/assets/7deb1d72-b658-41ac-9048-9272e0f31c80

Actual Behavior

Android says I have no passkey; passkey doesn't appear on Google Password Manager

https://github.com/user-attachments/assets/8736e50d-1048-414a-977a-ad15aa081b3d

Version and Environment

Pocket ID 0.44.0 (the demo version at time of report)
Samsung Galaxy M52 5G, Android 13, One UI 5.1
Firefox 136.0.2

Passkeys do work on Firefox. Here's a recording of me successfully using one on webauthn.io

https://github.com/user-attachments/assets/7a85e909-9ee7-4a48-bf33-d3d53d7f515d

I have to create a passkey from Chrome to be able to use it in Firefox.

Log Output

Replicating the issue on my server:

pocket-id-1  | [GIN] 2025/03/30 - 07:44:17 | 200 |   21.086306ms |    192.168.1.72 | GET      "/api/webauthn/register/start"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:17 | 200 |   21.140303ms |    192.168.1.72 | GET      "/api/webauthn/register/start"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:20 | 200 |    26.06538ms |    192.168.1.72 | POST     "/api/webauthn/register/finish"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:20 | 200 |   26.116044ms |    192.168.1.72 | POST     "/api/webauthn/register/finish"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:20 | 200 |     791.412µs |    192.168.1.72 | GET      "/api/webauthn/credentials"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:20 | 200 |     863.008µs |    192.168.1.72 | GET      "/api/webauthn/credentials"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:21 | 200 |   54.159882ms |    192.168.1.72 | PATCH    "/api/webauthn/credentials/e2e6d788-c722-48a0-97e1-2ceaadd6fb5d"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:21 | 200 |   54.433699ms |    192.168.1.72 | PATCH    "/api/webauthn/credentials/e2e6d788-c722-48a0-97e1-2ceaadd6fb5d"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:21 | 200 |     765.081µs |    192.168.1.72 | GET      "/api/webauthn/credentials"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:21 | 200 |     838.318µs |    192.168.1.72 | GET      "/api/webauthn/credentials"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:24 | 204 |     510.266µs |    192.168.1.72 | POST     "/api/webauthn/logout"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:24 | 204 |     570.545µs |    192.168.1.72 | POST     "/api/webauthn/logout"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:24 | 401 |      88.391µs |             ::1 | GET      "/api/users/me"
pocket-id-1  | Error #01: You are not signed in
pocket-id-1  | [GIN] 2025/03/30 - 07:44:24 | 401 |     130.864µs |             ::1 | GET      "/api/users/me"
pocket-id-1  | Error #01: You are not signed in
pocket-id-1  | [GIN] 2025/03/30 - 07:44:24 | 200 |     378.821µs |             ::1 | GET      "/api/application-configuration"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:24 | 200 |     420.282µs |             ::1 | GET      "/api/application-configuration"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:26 | 200 |   87.465386ms |    192.168.1.72 | GET      "/api/webauthn/login/start"
pocket-id-1  | [GIN] 2025/03/30 - 07:44:26 | 200 |  104.951863ms |    192.168.1.72 | GET      "/api/webauthn/login/start"
Originally created by @000yesnt on GitHub. ### Reproduction steps After adding a new passkey through Firefox Mobile on Android 13, log out and try to log back in. ### Expected behavior Android shows me that I have a passkey available; the passkey appears on Google's Password Manager. Example video recorded on Chrome: https://github.com/user-attachments/assets/7deb1d72-b658-41ac-9048-9272e0f31c80 ### Actual Behavior Android says I have no passkey; passkey doesn't appear on Google Password Manager https://github.com/user-attachments/assets/8736e50d-1048-414a-977a-ad15aa081b3d ### Version and Environment Pocket ID 0.44.0 (the demo version at time of report) Samsung Galaxy M52 5G, Android 13, One UI 5.1 Firefox 136.0.2 Passkeys do work on Firefox. Here's a recording of me successfully using one on webauthn.io https://github.com/user-attachments/assets/7a85e909-9ee7-4a48-bf33-d3d53d7f515d I have to create a passkey from Chrome to be able to use it in Firefox. ### Log Output Replicating the issue on my server: ``` pocket-id-1 | [GIN] 2025/03/30 - 07:44:17 | 200 | 21.086306ms | 192.168.1.72 | GET "/api/webauthn/register/start" pocket-id-1 | [GIN] 2025/03/30 - 07:44:17 | 200 | 21.140303ms | 192.168.1.72 | GET "/api/webauthn/register/start" pocket-id-1 | [GIN] 2025/03/30 - 07:44:20 | 200 | 26.06538ms | 192.168.1.72 | POST "/api/webauthn/register/finish" pocket-id-1 | [GIN] 2025/03/30 - 07:44:20 | 200 | 26.116044ms | 192.168.1.72 | POST "/api/webauthn/register/finish" pocket-id-1 | [GIN] 2025/03/30 - 07:44:20 | 200 | 791.412µs | 192.168.1.72 | GET "/api/webauthn/credentials" pocket-id-1 | [GIN] 2025/03/30 - 07:44:20 | 200 | 863.008µs | 192.168.1.72 | GET "/api/webauthn/credentials" pocket-id-1 | [GIN] 2025/03/30 - 07:44:21 | 200 | 54.159882ms | 192.168.1.72 | PATCH "/api/webauthn/credentials/e2e6d788-c722-48a0-97e1-2ceaadd6fb5d" pocket-id-1 | [GIN] 2025/03/30 - 07:44:21 | 200 | 54.433699ms | 192.168.1.72 | PATCH "/api/webauthn/credentials/e2e6d788-c722-48a0-97e1-2ceaadd6fb5d" pocket-id-1 | [GIN] 2025/03/30 - 07:44:21 | 200 | 765.081µs | 192.168.1.72 | GET "/api/webauthn/credentials" pocket-id-1 | [GIN] 2025/03/30 - 07:44:21 | 200 | 838.318µs | 192.168.1.72 | GET "/api/webauthn/credentials" pocket-id-1 | [GIN] 2025/03/30 - 07:44:24 | 204 | 510.266µs | 192.168.1.72 | POST "/api/webauthn/logout" pocket-id-1 | [GIN] 2025/03/30 - 07:44:24 | 204 | 570.545µs | 192.168.1.72 | POST "/api/webauthn/logout" pocket-id-1 | [GIN] 2025/03/30 - 07:44:24 | 401 | 88.391µs | ::1 | GET "/api/users/me" pocket-id-1 | Error #01: You are not signed in pocket-id-1 | [GIN] 2025/03/30 - 07:44:24 | 401 | 130.864µs | ::1 | GET "/api/users/me" pocket-id-1 | Error #01: You are not signed in pocket-id-1 | [GIN] 2025/03/30 - 07:44:24 | 200 | 378.821µs | ::1 | GET "/api/application-configuration" pocket-id-1 | [GIN] 2025/03/30 - 07:44:24 | 200 | 420.282µs | ::1 | GET "/api/application-configuration" pocket-id-1 | [GIN] 2025/03/30 - 07:44:26 | 200 | 87.465386ms | 192.168.1.72 | GET "/api/webauthn/login/start" pocket-id-1 | [GIN] 2025/03/30 - 07:44:26 | 200 | 104.951863ms | 192.168.1.72 | GET "/api/webauthn/login/start" ```
OVERLORD added the bug label 2025-10-07 00:08:03 +03:00
Author
Owner

@000yesnt commented on GitHub:

This is not an issue with pocketid, it's an issue with google services. i have the exact same behaviour on phones that do not support/use google services.

The "use this device" is absolutely broken on all the devices, unless you specifically use the google password manager (this is why it says "cannot find passkey for xxx.domain.yyy").

I understand, but I don't think that explains why webauthn.io prompted me to add a passkey to my Google account while Pocket ID didn't.

What does Pocket ID do different? if it worked like webauthn, shouldn't it ask me to use the google password manager?

To be clear, i have the exact same behaviour on all the demo websites (including pocket-id) using firefox & chrome.

and I'm only getting this issue on firefox, and only on pocket id. it works fine on other passkey demos. I attached a recording of webauthn.io working fine on firefox. I don't think we're having the same exact issue?

I should also emphasize the following part on my report:

I have to create a passkey from Chrome to be able to use it in Firefox.

@000yesnt commented on GitHub: > This is not an issue with pocketid, it's an issue with google services. i have the exact same behaviour on phones that do not support/use google services. > > The "use this device" is absolutely broken on all the devices, unless you specifically use the google password manager (this is why it says "cannot find passkey for xxx.domain.yyy"). I understand, but I don't think that explains why webauthn.io prompted me to add a passkey to my Google account while Pocket ID didn't. What does Pocket ID do different? if it worked like webauthn, shouldn't it ask me to use the google password manager? > To be clear, i have the exact same behaviour on all the demo websites (including pocket-id) using firefox & chrome. and I'm only getting this issue on firefox, and only on pocket id. it works fine on other passkey demos. I attached a recording of webauthn.io working fine on firefox. I don't think we're having the same exact issue? I should also emphasize the following part on my report: > I have to **create a passkey from Chrome** to be able to use it in Firefox.
Author
Owner

@stonith404 commented on GitHub:

Thanks for reporting this https://github.com/keycloak/keycloak/issues/32816 doesn't seem related as "Require discoverable credential" is enabled in Pocket ID.

I don't have an Android device so I can't really debug this but I keep an eye on this issue.

@stonith404 commented on GitHub: Thanks for reporting this https://github.com/keycloak/keycloak/issues/32816 doesn't seem related as "Require discoverable credential" is enabled in Pocket ID. I don't have an Android device so I can't really debug this but I keep an eye on this issue.
Author
Owner

@000yesnt commented on GitHub:

I found a similar issue reported to Keycloak, could this be related somehow? https://github.com/keycloak/keycloak/issues/32816

@000yesnt commented on GitHub: I found a similar issue reported to Keycloak, could this be related somehow? https://github.com/keycloak/keycloak/issues/32816
Author
Owner

@wargio commented on GitHub:

I understand, but I don't think that explains why webauthn.io prompted me to add a passkey to my Google account while Pocket ID didn't.

Because your device prompted you with the google password manager, meanwhile in the second screen it didn't.

I understand, but I don't think that explains why webauthn.io prompted me to add a passkey to my Google account while Pocket ID didn't.

Yes indeed. i have the same issue on the phone which does have google services and i only recently was able to do the same. it's an issue with firefox and the android ecosystem.

Try updating firefox to 136.0.2 or use the dev build (from google play i use 138.0a1)

@wargio commented on GitHub: > I understand, but I don't think that explains why webauthn.io prompted me to add a passkey to my Google account while Pocket ID didn't. Because your device prompted you with the google password manager, meanwhile in the second screen it didn't. > I understand, but I don't think that explains why webauthn.io prompted me to add a passkey to my Google account while Pocket ID didn't. Yes indeed. i have the same issue on the phone which does have google services and i only recently was able to do the same. it's an issue with firefox and the android ecosystem. Try updating firefox to 136.0.2 or use the dev build (from google play i use 138.0a1)
Author
Owner

@wargio commented on GitHub:

This is not an issue with pocketid, it's an issue with google services. i have the exact same behaviour on phones that do not support/use google services.

Essentially in the first video you are using google password manager, meanwhile in the second you are using the passkeys selector, which allows you to use different ways of logging in (like nfc cards, usb keys, etc..)

The "use this device" is absolutely broken on all the devices, unless you specifically use the google password manager (this is why it says "cannot find passkey for xxx.domain.yyy").

To be clear, i have the exact same behaviour on all the demo websites (including pocket-id) using firefox & chrome.

@wargio commented on GitHub: This is not an issue with pocketid, it's an issue with google services. i have the exact same behaviour on phones that do not support/use google services. Essentially in the first video you are using google password manager, meanwhile in the second you are using the passkeys selector, which allows you to use different ways of logging in (like nfc cards, usb keys, etc..) The "use this device" is absolutely broken on all the devices, unless you specifically use the google password manager (this is why it says "cannot find passkey for xxx.domain.yyy"). To be clear, i have the exact same behaviour on all the demo websites (including pocket-id) using firefox & chrome.
Author
Owner

@reneald commented on GitHub:

I've been encountering this same issue on Android 14 + Firefox. When on https://webauthn.io I use the default settings to register, Google Password Manager kicks in, I can save a passkey, and am able to use that passkey to authenticate (as in OP's 3rd recording). When on pocket-id, instead of Google Password Manager I get the same popup as in OP's 2nd recording. Choosing 'this device' doesn't seem to actually save a passkey to the device, and I cannot authenticate afterwards.

I've done some more digging around. On WebAuthn, when going to advanced settings and selecting Discoverable Credential: Discouraged, the same popup from OP's 2nd recording shows up instead of Google Password Manager.

Is it possible that pocket-id uses non-discoverable credentials? I couldn't find any info about it in the documentation. Is there any way to force the use of discoverable credentials instead?

@reneald commented on GitHub: I've been encountering this same issue on Android 14 + Firefox. When on https://webauthn.io I use the default settings to register, Google Password Manager kicks in, I can save a passkey, and am able to use that passkey to authenticate (as in OP's 3rd recording). When on pocket-id, instead of Google Password Manager I get the same popup as in OP's 2nd recording. Choosing 'this device' doesn't seem to actually save a passkey to the device, and I cannot authenticate afterwards. I've done some more digging around. On WebAuthn, when going to advanced settings and selecting Discoverable Credential: Discouraged, the same popup from OP's 2nd recording shows up instead of Google Password Manager. Is it possible that pocket-id uses non-discoverable credentials? I couldn't find any info about it in the documentation. Is there any way to force the use of discoverable credentials instead?
Author
Owner

@stonith404 commented on GitHub:

I'm closing this issue as this doesn't seem related to Pocket ID. Feel free to comment on this issue if you find out more.

@stonith404 commented on GitHub: I'm closing this issue as this doesn't seem related to Pocket ID. Feel free to comment on this issue if you find out more.
Author
Owner

@nydragon commented on GitHub:

I am encountering the exact same behaviour, Pocket ID allows me to register a new key on Firefox and Chrome, but when trying to log in, my phones claim that there is no passkey for that website.
Tested with Google Play Services and MicroG and everything works as expected on webauthn.io for both of GApps and MicroG

@nydragon commented on GitHub: I am encountering the exact same behaviour, Pocket ID allows me to register a new key on Firefox and Chrome, but when trying to log in, my phones claim that there is no passkey for that website. Tested with Google Play Services and MicroG and everything works as expected on webauthn.io for both of GApps and MicroG
Author
Owner

@stonith404 commented on GitHub:

@reneald Thanks for helping to debug this issue.

Pocket ID requires discoverable credentials by setting residentKey to required. Webauthn.io seems to set residentKey to preferred. Would you mind to test setting "Discoverable Credential" to "required" on webauthn.io and let me know if the Google Password Manager doesn't get shown in this case?

@stonith404 commented on GitHub: @reneald Thanks for helping to debug this issue. Pocket ID requires discoverable credentials by setting `residentKey` to `required`. Webauthn.io seems to set `residentKey` to `preferred`. Would you mind to test setting "Discoverable Credential" to "required" on webauthn.io and let me know if the Google Password Manager doesn't get shown in this case?
Author
Owner

@reneald commented on GitHub:

Both options work with Google password manager, although the user interface is slightly different:

Preferred:
Screenshot_20250507_123205_Google Play services.jpg

Required:
Screenshot_20250507_123056_Credential Manager.jpg

@reneald commented on GitHub: Both options work with Google password manager, although the user interface is slightly different: Preferred: ![Screenshot_20250507_123205_Google Play services.jpg](https://github.com/user-attachments/assets/0191f8e1-6a7e-4cb5-b684-8e07e1e2b558) Required: ![Screenshot_20250507_123056_Credential Manager.jpg](https://github.com/user-attachments/assets/84f41839-baa6-4443-8787-67b6c8a19aae)
Author
Owner

@stonith404 commented on GitHub:

@Sud-Puth thanks for sharing your findings.

Would you guys mind to testing Firefox beta too?

@stonith404 commented on GitHub: @Sud-Puth thanks for sharing your findings. Would you guys mind to testing Firefox beta too?
Author
Owner

@Sud-Puth commented on GitHub:

One more data point - I am on Android 16 and Firefox - 142.0.1 , the behavior for me is that the popup from webauthn works in Chrome and the latest Firefox beta but not on the latest Firefox. I did go back to the previous version of Firefox stable and nope, didn't work.
Somehow gives the 'highlighted' focus error - Type error for parameter updateProperties (Property "highlighted" is unsupported by Firefox) for tabs.update.

I guess the official page does say Firefox is not supported - https://www.webauthn.me/browser-support
While the tab with 'your current browser' information does say it's supported.

@Sud-Puth commented on GitHub: One more data point - I am on Android 16 and Firefox - 142.0.1 , the behavior for me is that the popup from webauthn works in Chrome and the latest Firefox beta but not on the latest Firefox. I did go back to the previous version of Firefox stable and nope, didn't work. Somehow gives the 'highlighted' focus error - Type error for parameter updateProperties (Property "highlighted" is unsupported by Firefox) for tabs.update. I guess the official page does say Firefox is not supported - https://www.webauthn.me/browser-support While the tab with 'your current browser' information does say it's supported.
Author
Owner

@stonith404 commented on GitHub:

Huh, okay, that's really strange. I'll check what other things Pocket ID handles differently from Webauthn.io. I get back on you as soon as I have more information.

@stonith404 commented on GitHub: Huh, okay, that's really strange. I'll check what other things Pocket ID handles differently from Webauthn.io. I get back on you as soon as I have more information.
Author
Owner

@Ulrar commented on GitHub:

Running into this myself now, I see this issue is still closed as not planned, should it maybe be re-opened if it's being investigated ?

@Ulrar commented on GitHub: Running into this myself now, I see this issue is still closed as not planned, should it maybe be re-opened if it's being investigated ?
Author
Owner

@domodial commented on GitHub:

I have a similar problem.
On Firefox and Firefox Beta, it's impossible to save the key on Android.
When I select "this device," nothing happens.
The window keeps looping.

While reading your thread, I tried Chrome (which I haven't used for a long time). Wow ! It works perfectly.
If I log out, I can log back in with the key without any problems.
If I log on Firefox, chrome send the key on firefox and work without any problems !

What's going on with Firefox?
I imagine this solution should work with most popular browsers, or just with Chrome?

@domodial commented on GitHub: I have a similar problem. On Firefox and Firefox Beta, it's impossible to save the key on Android. When I select "this device," nothing happens. The window keeps looping. While reading your thread, I tried Chrome (which I haven't used for a long time). Wow ! It works perfectly. If I log out, I can log back in with the key without any problems. If I log on Firefox, chrome send the key on firefox and work without any problems ! What's going on with Firefox? I imagine this solution should work with most popular browsers, or just with Chrome?
Author
Owner

@reneald commented on GitHub:

I've just tested with Firefox beta on android, and it doesn't work for me unfortunately. It still says that no passkeys are found on my device, while chrome or brave work as expected.

@reneald commented on GitHub: I've just tested with Firefox beta on android, and it doesn't work for me unfortunately. It still says that no passkeys are found on my device, while chrome or brave work as expected.
Author
Owner

@stonith404 commented on GitHub:

I’m closing this issue because it’s very unlikely that the problem is caused by Pocket ID itself. If you continue to experience the issue, please try the solution suggested by @Sud-Puth in the comment above. If the problem persists without having enabled a non-default password manager for passkeys, feel free to reopen this issue.

@stonith404 commented on GitHub: I’m closing this issue because it’s very unlikely that the problem is caused by Pocket ID itself. If you continue to experience the issue, please try the solution suggested by @Sud-Puth in the comment above. If the problem persists without having enabled a non-default password manager for passkeys, feel free to reopen this issue.
Author
Owner

@Sud-Puth commented on GitHub:

So with that, mine might be a user error. I had to disable my bitwarden
extension on Firefox for it too work properly. I'll go open an issue with
bitwarden. But Android 16 - bitwarden / Google passkeys - it works as long
as I don't have extensions that are causing issues

On Fri, Aug 29, 2025, 2:35 AM Leander Van Reeth @.***>
wrote:

reneald left a comment (pocket-id/pocket-id#403)
https://github.com/pocket-id/pocket-id/issues/403#issuecomment-3235896359

I've just tested with Firefox beta on android, and it doesn't work for me
unfortunately. It still says that no passkeys are found on my device, while
chrome or brave work as expected.


Reply to this email directly, view it on GitHub
https://github.com/pocket-id/pocket-id/issues/403#issuecomment-3235896359,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABFZOY5PQNOHAGGQFHNE3D3P7YEVAVCNFSM6AAAAAB2CHZUDKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEMZVHA4TMMZVHE
.
You are receiving this because you were mentioned.Message ID:
@.***>

@Sud-Puth commented on GitHub: So with that, mine might be a user error. I had to disable my bitwarden extension on Firefox for it too work properly. I'll go open an issue with bitwarden. But Android 16 - bitwarden / Google passkeys - it works as long as I don't have extensions that are causing issues On Fri, Aug 29, 2025, 2:35 AM Leander Van Reeth ***@***.***> wrote: > *reneald* left a comment (pocket-id/pocket-id#403) > <https://github.com/pocket-id/pocket-id/issues/403#issuecomment-3235896359> > > I've just tested with Firefox beta on android, and it doesn't work for me > unfortunately. It still says that no passkeys are found on my device, while > chrome or brave work as expected. > > — > Reply to this email directly, view it on GitHub > <https://github.com/pocket-id/pocket-id/issues/403#issuecomment-3235896359>, > or unsubscribe > <https://github.com/notifications/unsubscribe-auth/AABFZOY5PQNOHAGGQFHNE3D3P7YEVAVCNFSM6AAAAAB2CHZUDKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEMZVHA4TMMZVHE> > . > You are receiving this because you were mentioned.Message ID: > ***@***.***> >
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pocket-id#270