timeout not working on Safari for navigator.credentials.create() request

Hi, I am facing an issue with timeout implementation on navigator.credentials.create().

Trying to build an authentication using webauthn. I am doing navigator.credentials.create() upon user specific action(button-click) which then prompts dialog for user to perform biometric gesture.

I am passing timeout value in publickey credential request. However noticed that timeout value is not honored on Safari and dialog which is shown to user for biometric gesture stays forever.

below is how I am passing timeout

    "challenge": "testchanllengevalue",
    "rp": { "name": "test.com" },
    "user": {
      "id": "12345-543212-12345-54321",
      "name": "NAME",
      "displayName": "NAME"
    },
    "attestation": "direct",
    "timeout": 20000,
    "authenticatorSelection": {
      "authenticatorAttachment": "platform",
      "requireResidentKey": false,
      "userVerification": "required"
    },
    "pubKeyCredParams": [
      { "type": "public-key", "alg": -7 },
      { "type": "public-key", "alg": -257 }
    ]
}

Anyone faced this issue and is there any know workaround for this ?

Thanks!

Replies

Our default is currently 2 minutes, so the dialog shouldn't stay up indefinitely. We do have some clamping rules for minimum and maximum timeout values that we'll accept. If you file this through Feedback Assistant so we can get the logs, we'll happily take a look!