Thanks for the quick response.
I think I realized the issue.
This morning, I tried and found that LocalAuthentication.authenticateAsync() resolved.
However, following that, I intentionally failed the TouchID authentication (I can’t remember the sequence of events) and now, I found that TouchID is not enrolled at all, i.e. console.log(enrolled) returns “false”.
Since in the snack, LocalAuthentication.authenticateAsync() is called only if enrolled === true, I couldn’t see console.log(“results”). When I allowed LocalAuthentication.authenticateAsync() to be called even when enrolled === false, I saw that console.log(“results”) showed me the error, i.e. “…, error = lockout, …”.
As disableDeviceFallback is set to true, nothing happens following the error.
So back to the 3 problems I highlighted earlier, I believe the first two are not problems at all, as you have noted.
For the last problem, depending on what the docs mean by “After several failed attempts the system will fallback to the device passcode”, it might not even be an issue. If disableDeviceFallback set to true meant that when the lockout error occurs, nothing happens, then this is correct. However, if disableDeviceFallback set to true meant that the option to authenticate with passcode will not show within the dialog box after one failed authentication attempt, then there is an issue that needs solving.
Separately, I am thinking that enrolled becoming false when the error occurs might not be the best way forward, since the biometrics are still enrolled but may be just temporarily disabled.
Let me know your thoughts!