Entra ID SMS and voice MFA retirement: who gets blocked on 1 February 2027

Short answer: Microsoft Entra ID stops delivering MFA codes by SMS and voice call itself. On 1 February 2027 (1 July 2027 for Global Administrators and external users) anyone whose only MFA method is SMS or voice must register a passkey before they can sign in again. Move those users to a passkey, Windows Hello, a security key or an authenticator app first.

Deadline: Microsoft stops sending Entra ID MFA codes by SMS and voice call on 1 February 2027 (Global Administrators and external users: 1 July 2027). Users whose only MFA method is SMS or voice then have to register a passkey at sign-in before they can continue, and there is no opt-out from that step.

Timeline

1 Sep 2026Passkeys became the default. Users enabled for SMS or voice were auto-enabled for passkeys and get a snoozable registration prompt after MFA (registration campaign set to Microsoft managed).
30 Oct 2026Tenants that must keep SMS or voice can configure a paid telephony provider in Microsoft Security Store.
1 Feb 2027Microsoft-provided SMS and voice retired for everyone except Global Administrators and external users. Internal guest users are in this group. SMS-only users get a blocking passkey registration prompt.
1 Jul 2027The same for Global Administrators and external users.

Who is affected and who isn't

Find the users who will be blocked

Microsoft's entra-sms-voice-usage-analyzer shows which policies still allow SMS and voice; its README says it is not a per-user inventory. For the people themselves:

Connect-MgGraph -Scopes AuditLog.Read.All
Get-MgReportAuthenticationMethodUserRegistrationDetail -All |
  Where-Object { ($_.MethodsRegistered -match 'Phone$') -and -not ($_.MethodsRegistered -notmatch 'Phone$|^email$|securityQuestion') } |
  Select-Object UserPrincipalName, UserType, IsAdmin, @{n='Methods'; e={$_.MethodsRegistered -join ' '}} |
  Export-Csv .\sms-only-users.csv -NoTypeInformation

IsAdmin is true for any admin role, but only Global Administrators get the July date. Guests: external (B2B) users get July, internal guest users February.

What to move users to

MethodPhishing-resistantBest forWatch out
Passkey in Microsoft Authenticator✓ yesUsers with a smartphone they can use for work.Device-bound: a new phone means registering again.
Synced passkey (iCloud Keychain, Google Password Manager)✓ yesUsers who already use a platform password manager.The passkey follows the user's personal account across devices.
FIDO2 security key✓ yesNo smartphone, shared PCs, places where mobile passkeys don't work.Hardware to buy, hand out and replace.
Windows Hello for Business✓ yesUsers on their own Windows PC.Tied to that PC; users who already have it can keep using it.
Verification codes (TOTP app or OATH token)noA fallback that avoids the blocking prompt: still supported after 1 Feb 2027.Doesn't satisfy Conditional Access policies that require phishing-resistant MFA.
SMS or voice through a telephony providernoA documented regulatory or operational need for SMS or voice.Paid, priced by provider and region; set up in Microsoft Security Store from 30 Oct 2026 and move users before the date.

By situation

Delay the automatic passkey rollout (not the deadline)

A temporary opt-out stops the automatic passkey enablement and registration campaign until 1 February 2027. It needs Policy.ReadWrite.AuthenticationMethod:

PATCH https://graph.microsoft.com/beta/policies/authenticationmethodspolicy
{ "optOutSettings": { "passkeyDynamicMigration": true } }

It does not move the retirement: from each group's date the blocking prompt applies whatever this setting says.

Tell your users

Microsoft suggests three messages to the SMS and voice group: awareness (what changes and why), action (how to register a passkey on Windows, iPhone or Android) and a reminder for those who haven't. It publishes end-user communication templates for email and Teams.

Sources

Did this fix it?

What's still not working?

Paste the bounce message or describe what happens. We read every report and add fixes for new errors.