Why do users see a brief "Enroll in multi-factor authentication" screen during email verification?

We’re having a really weird issue with email verification. I suspect it’s something really simple and I don’t know what to search for, but I’m running out of ideas.

The problem

  1. User signs up for an account at /u/signup
  2. Auth0 sends them an email with a verification link
  3. User clicks on the verification link, which takes them to /u/email-verification
  4. User is briefly shown a screen “Enroll in multi-factor authentication”, before being redirected away to a “you’ve completed validation page” that’s on our own domain

We don’t actually allow users to configure MFA, so the presence of this interstitial is both confusing and wrong (for users and for developers).

I think we’ve got a workaround to suppress this message, but it‘d be good to understand where this is coming from – there’s probably a “proper” way to do this that we’re missing.

Debugging clues/context

  • We’re using the new Universal Login experience.

  • We use a Database Connection to store users in an external database. We have a Database Action Script that runs on email verification, which records the verification result in the external database.

  • The “Enroll in MFA” screen takes a few seconds to redirect when you first click the email verification link, but redirects almost instantly on subsequent clicks.

  • When I save the contents of the “Enroll in MFA” screen using curl, I see it’s being rendered using our universal-login.html template. In particular, that message is being set as the prompt.screen.texts.pageTitle variable.

  • I can’t find other Auth0-related questions with the exact text “Enroll in multi-factor authentication”, which makes me think it might be a string we’ve set. But I’ve dumped all the config for our Auth0 tenant using a0deploy export -c config.json -f yaml -o ., and I can’t find that message anywhere. I also can’t find it anywhere in the console.

  • I tried customising all the text in the email-verification prompts, but that didn’t affect what appeared on this screen.

I’m happy to provide more details/information about our setup if it might help explain what’s going on here, because I’m out of ideas.