MfaWebAuthnPlatformEnrollment: missing tryAnotherMethod / PICK_AUTHENTICATOR action

Hello,

I’m looking for guidance (or to flag a possible gap) on the @auth0/auth0-acul-js SDK (v1.3.0) for the mfa-webauthn-platform-enrollment screen.

We’re building a custom Universal Login screen using @acul/auth0-acul-react/mfa-webauthn-platform-enrollment. The design includes a “Try another method” button so users who don’t want to enroll a platform authenticator can pick a different MFA factor (SMS, OTP, etc.).

I’ve found that sibling enrollment screens expose a tryAnotherMethod action that maps to the PICK_AUTHENTICATOR action on the server and redirects the user back to the factor selection screen.

For example:

- MfaWebAuthnRoamingEnrollment -> tryAnotherMethod()
- MfaOtpEnrollmentQr -> tryAnotherMethod()
- MfaPhoneEnrollment -> tryAnotherMethod()
- MfaSmsChallenge -> tryAnotherMethod()
- MfaWebAuthnError -> tryAnotherMethod()

However, MfaWebAuthnPlatformEnrollment only exposes:

- submitPasskeyCredential()
- reportBrowserError()
- snoozeEnrollment() -> SNOOZE_ENROLLMENT
- refuseEnrollmentOnThisDevice() -> REFUSE_ADD_DEVICE

The closest action is snoozeEnrollment, but that defers the enrollment prompt rather than navigating the user to the factor picker, so it doesn’t satisfy a “Try another method” use case.

Is the omission of tryAnotherMethod / PICK_AUTHENTICATOR on MfaWebAuthnPlatformEnrollment intentional? If so, what’s the recommended way to let users switch to a different MFA factor from this screen?

If not intentional, can support for PICK_AUTHENTICATOR be added to this screen’s SDK to match the other enrollment screens?

Thank you!

Hi @mbanks,

Welcome to the Auth0 Community!

Please allow me some time to further investigate this issue and I will be back with some updates as soon as possible.

Thank you!
Best regards,
Remus

Hi Remus, thanks for looking into this!

For visibility, here’s the workaround we landed on in the meantime - wiring snoozeEnrollment to our “Try another method” button:

import { useMfaWebAuthnPlatformEnrollment } from '@auth0/auth0-acul-react/mfa-webauthn-platform-enrollment';

const tryAnotherMethod = useIndefiniteMutation({
mutationFn: () => execute(mfaWebAuthnPlatformEnrollment.snoozeEnrollment.bind(mfaWebAuthnPlatformEnrollment)),
});

Thanks again!