The passkey registration and authentication windows randomly require ⪆ 6 s to appear.
- Dominant language
- TypeScript
- Stars
- 13.8k
- Forks
- 2k
- Avg merge
- 3d 9h
- Merged PRs (30d)
- 393
Description
### Steps To Reproduce
Attempt to use a FIDO passkey stored in Bitwarden to authenticate at, as merely one example, [`accounts.google.com/v3/signin/challenge/pk/presend`](https://accounts.google.com/v3/signin/challenge/pk/presend).
### Expected Result
I should not wait more than 1 s.
### Actual Result
The passkey apparently randomly requires approximately 10 s to appear, to the extent that some registrations fail:
~~~YAML
20:02:20.951 XHRPOST
https://universal-blue.discourse.group/u/create_passkey.json
[HTTP/2 200 173ms]20:02:21.240 Error: The operation either timed out or was not allowed.
request moz-extension://8b7c7ead-b343-4508-948a-258b93d9798f/content/fido2-page-script.js:304
fulfilled moz-extension://8b7c7ead-b343-4508-948a-258b93d9798f/content/fido2-page-script.js:239
user-passkeys.gjs:104:15
~~~
No relationship exists between amount of vault entries that match the relevant domain.
### Screenshots or Videos
It's difficult to capture because it's seemingly random, but I'll try to.
### Operating System
1. ~~~pwsh
#!/usr/bin/env pwsh
Get-ComputerInfo | Select-Object -Property @('OsName', 'OsBuildNumber') | Format-List
~~~
1.
~~~YAML
OsName : Microsoft Windows 11 Pro
OsBuildNumber : 26120
~~~
### Web Browser
1. ~~~pwsh
#!/usr/bin/env pwsh
Get-AppxPackage Mozilla.MozillaFirefoxNightly
~~~
1.
~~~YAML
Name : Mozilla.MozillaFirefoxNightly
Architecture : X64
Version : 146.2510.2409.0
IsFramework : False
PublisherId : jag0gd4e3s9p2
IsResourcePackage : False
IsBundle : False
IsDevelopmentMode : False
NonRemovable : False
IsPartiallyStaged : False
SignatureKind : Developer
Status : Ok
~~~
### Build Version
~~~YAML
Version: 2025.10.0
SDK: 'main (d0262d3)'
Server version: 2025.10.0
~~~
### 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
Research direction
Start by reproducing the delay in the passkey registration and authentication flow, then inspect the stack-trace locations content/fido2-page-script.js:304 and user-passkeys.gjs:104. Compare successful and timed-out attempts; done means the passkey window appears within the expected one-second limit and registrations no longer fail from the delay.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- authentication, security
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100