iOS Safari fails on conditional UI on page refresh #350
Replies: 6 comments 4 replies
-
What a coincidence, I was just dealing with this today! I ended up logging a WebKit bug about this behavior in iOS Safari because even in a stripped down example, sans any libraries, the error was reproducible: https://bugs.webkit.org/show_bug.cgi?id=251817
This specific error message is coming from my library, here: FYI the raw error message being raised by iOS Safari (that I'm inadvertently overwriting here in There's this bit of extra info I left as a comment in the bug that might interest you, from a bug behavior perspective:
|
Beta Was this translation helpful? Give feedback.
-
What are the chances! 😂 I am just thrilled to know that I'm not crazy, debugging iOS bugs locally when dealing with Webauthn and the TLS requirements to get browsers to operate with it is not exactly fun. This is slightly unrelated, but another annoyance I am having right now is it's really difficult to figure out how to deal with the I replicated this yesterday in a iOS simulator. Once the simulator spins up, use your example you filed in the ticket, and hit that page via the simulator. In the simulator app menu if you go to I guess the long story of this is we have to silently ignore |
Beta Was this translation helpful? Give feedback.
-
So you don't even get a chance to use a passkey on another mobile device? Or even a discoverable credential on a security key? The conditional UI simply, immediately errors out? That's disappointing :(
Yes, this is where I'm at too. It's probably the exception that an iPhone hasn't had a biometric enrolled so hopefully that particular instance of |
Beta Was this translation helpful? Give feedback.
-
Yes - painful! 🤕 This is what I get on your example.simplewebauthn.dev site in the iOS simulator when FaceID feature is not enrolled. Every single page load results in an error in the conditional UI call. The error goes away and becomes just every-other request (the bug you filed to webkit) when FaceID feature is enrolled. |
Beta Was this translation helpful? Give feedback.
-
@rmmeans I'm going to convert this issue into a discussion since it's reporting a problem with a platform instead of this project. I think it's worth trying to keep this discoverable, though, and a discussion seems like a better place than the Closed section of Issues. |
Beta Was this translation helpful? Give feedback.
-
BTW I created #352 to help me remember to update my error identification logic to stop obfuscating the cause of some of these errors. |
Beta Was this translation helpful? Give feedback.
-
Hi!
I think my issue may be a Safari bug itself. I am currently working on implementing passkey support with conditional mediation for a product I support and had not used your library yet (looks nice!! 👀). I found your implementation when testing our own and I was able to reproduce an issue we are having with your implementation directly on your example.simplewebauthn.dev site.
Here's what I'm doing, I wanted to see if you are seeing a similar experience.
The following steps need to be done on an iOS device running iOS 16 (I'm running iPadOS 16.2 in the following example)
NotAllowedError: User clicked cancel, or the authentication ceremony timed out
If you get the error in step 5, the conditional mediation promise died. This is odd however, because it happened immediately on the page refresh. If you refresh a second time, you will have no console error and can proceed with login. Refresh a third time, and you are back to the error again in your console (and unable to login). Curious if you have any thoughts on this? Seems like a safari bug on iOS. I haven't been able to reproduce on Safari on Mac.
Beta Was this translation helpful? Give feedback.
All reactions