Short answer
Catch the code in every sign-in call, pass the error to getMultiFactorResolver, let the user pick a factor from resolver.hints, then complete sign-in with resolver.resolveSignIn. Apps that treat every error as “wrong password” lock these users out.
Rather not fix it yourself? App Fix Ticket starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.
Why sign-in stops, and the fix
01
The app shows a generic error
“Sign the user in with their first factor, then catch the auth/multi-factor-auth-required error.” Firebase, Add multi-factor authentication to your web app
The user typed the right password, but the app says sign-in failed. Handle this code before the generic error branch.
import { getAuth, signInWithEmailAndPassword, getMultiFactorResolver } from 'firebase/auth'; const auth = getAuth(); try { await signInWithEmailAndPassword(auth, email, password); } catch (error) { if (error.code === 'auth/multi-factor-auth-required') { const resolver = getMultiFactorResolver(auth, error); showSecondFactorScreen(resolver.hints); } }02
Only email sign-in handles it
Google, Apple and other providers throw the same code. Add the handler to signInWithPopup, signInWithRedirect results and reauthentication calls too.
03
The SMS step is not set up
“This error contains a resolver, hints on the enrolled second factors, and an underlying session proving the user successfully authenticated with the first factor.” Firebase, Add multi-factor authentication to your web app
Phone second factors need a reCAPTCHA verifier and the resolver session to send the code. Build the PhoneInfoOptions from the selected hint and resolver.session.
04
Testers see it only on some accounts
“MFA requires email verification.” Firebase, Add multi-factor authentication to your web app
Also check: multi-factor sign-in needs Firebase Authentication with Identity Platform, and Firebase says MFA requires email verification. Only accounts that enrolled a second factor in that project see this error.
Checked against the vendor’s docs on : Firebase docs: Add multi-factor authentication to your web app.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.See scope and start
“Very responsive, attentive to fixing bugs, and completed the project as needed! Thank you!”
Related: Firebase auth/requires-recent-login · Firebase auth/quota-exceeded · Firebase auth/invalid-credential · Firebase auth/billing-not-enabled