AccessPilot Knowledge Base

Contents › Reference

Sign-in error codes and diagnosis

Which codes mean Conditional Access, which only look like it, and how to tell them apart.
Published by Urbannerd Consulting · Reviewed 2026-07-29

Sign-in failure codes and Conditional Access diagnosis

Accuracy rule. Error-code text and semantics change. Every code below must be treated
as a hypothesis generator, not a verdict. The authoritative lookup is
https://login.microsoftonline.com/error?code=<number>, and the agent should point users
there when precision matters. Never invent a code or restate one with more confidence
than this file carries.

Provenance

Canonical CA set — the six codes Microsoft publishes on

Troubleshooting sign-in problems with Conditional Access

(retrieved 2026-07-28). State these confidently:

CodeError string
53000DeviceNotCompliant
53001DeviceNotDomainJoined
53002ApplicationUsedIsNotAnApprovedApp
53003BlockedByConditionalAccess
53004ProofUpBlockedDueToRisk
53009Application needs to enforce Intune protection policies

Everything else in this file is adjacent — drawn from the general

Entra authentication and authorization error codes

reference and from field experience. Hedge those, and point to the lookup URL.

Diagnostic method — apply before reaching for any code

The code narrows the search. It rarely completes the diagnosis. Work in this order:

  1. Was Conditional Access involved at all? Sign-in log → the sign-in → **Conditional

Access** tab. Each policy shows Success / Failure / Not applied / Report-only. If every

policy shows Not applied or Success, the cause is elsewhere — licensing, role

assignment, app configuration, or the account itself.

  1. Which policy shows Failure? That is the policy to reason about. There may be more

than one.

  1. Which condition matched? Compare the sign-in's client app, device state, location,

platform, risk level and user type against that policy's conditions.

  1. Which grant control failed? MFA not satisfied, device not compliant, strength not

met, app not approved.

  1. Could the user have satisfied it? Check registered methods, device enrolment,

compliance state. A user who cannot comply needs a different fix from one who

did not.

  1. Smallest safe change. Fix the user or the device before you change the policy.

Changing a policy to unblock one person is how estates decay.

Codes that indicate Conditional Access

CodeMeaningFirst hypotheses
AADSTS53003Access blocked by Conditional AccessThe generic CA block. Go to the CA tab — the code alone tells you nothing about which policy or why
AADSTS53000Device is not compliantDevice-compliance grant. Check Intune enrolment, compliance state, and whether benchmark guidance (unassigned = not compliant) was recently changed
AADSTS53001Device is not domain joinedHybrid-join grant. Check the device's join type and whether it has synced
AADSTS53002Application used is not an approved applicationRequire approved client app grant. The user is on an unapproved client — check the app, not the account
AADSTS53004Cannot complete MFA proof-up due to riskRegistration blocked because the account or sign-in is flagged risky. Requires risk remediation before registration
AADSTS50076MFA required — user must perform multi-factor authenticationA policy requires MFA and the session has not satisfied it. Normal interrupt, not necessarily a fault
AADSTS50079User must enrol for MFAPolicy requires MFA; user has no registered method. This is the blocked, not challenged case — likely needs a TAP
AADSTS50072User must enrol for second factor (interrupt)As above, at the enrolment interrupt stage
AADSTS50074Strong authentication required / user did not satisfy the challengeMFA attempted and not completed
AADSTS50158External security challenge not satisfiedCustom control or external authentication method not completed. Check the third-party provider, not Entra
AADSTS50097Device authentication requiredDevice state could not be established. Often a browser or PRT problem rather than a policy problem
AADSTS50131Conditional Access failure (general bucket)Covers several distinct causes including device state and policy evaluation. Must be resolved via the CA tab, not the code
AADSTS50173Fresh token requiredSign-in frequency or a revocation event. Expected behaviour after tightening 5.2.2.4 or 5.2.2.13
AADSTS500121Authentication failed during a strong authentication requestMFA denied, timed out, or the user cancelled. Frequently just the user tapping Deny
AADSTS53009Application needs to enforce Intune protection policiesApp protection policy grant. The app lacks an Intune app protection policy — not a device or user fault
AADSTS530032Blocked by a security policy at the tenant levelDistinct from an ordinary CA policy — check tenant restrictions and security policies

Two causes that are invisible from the error code alone

Both come from Microsoft's troubleshooting guidance and both produce blocks that look

unrelated to the policy causing them. Check these before concluding a policy is misbehaving.

Service dependency. The app the user opened is not the resource being called. Microsoft's

example: the application is Azure portal, the resource is Azure Resource Manager. A policy

targeting one but not the other blocks in a way that appears unconnected.

→ In the sign-in log, read the Resource field, not just the Application field. When a user

says "that policy doesn't even target this app", this is usually why.

Audience. Signing in to Teams requests access to multiple resources — Teams chat, Outlook

calendar, Excel documents. A SharePoint restriction fires during what the user experiences as

a Teams sign-in. Audience appears under the Resource section after selecting a policy on

the Conditional Access tab, and lists every resource requested.

→ This is the answer to "why is a SharePoint policy blocking Teams?"

Why a policy did or did not apply

Select the ellipsis beside a policy in the sign-in event. Left side = the values collected

at sign-in; right side = whether they satisfied the policy.

Conditional Access policies only apply when **all conditions are satisfied or not
configured**.

If the event is still not enough: Basic info → Troubleshoot Event runs the sign-in

diagnostic. The What If tool simulates a hypothetical sign-in.

Codes that look like Conditional Access but are not

Getting this differential right is a large part of the agent's value — these regularly get

misdiagnosed as CA problems and lead people to weaken policies that were never at fault.

CodeActual causeTell
AADSTS50105User is not assigned to a role for the applicationApp assignment, not policy. CA tab shows no failure
AADSTS50057User account is disabledAccount state
AADSTS50020User account from an external identity provider does not exist in the tenantB2B configuration or cross-tenant access settings
AADSTS700016Application not found in the directoryApp registration / wrong tenant
AADSTS7000112Application is disabledService principal disabled
AADSTS500011Resource principal not found in the tenantMissing service principal for the resource
AADSTS90072Account does not exist in the tenant and cannot access the application in this contextGuest / cross-tenant

If the CA tab shows no policy failure, stop treating it as a Conditional Access problem

and say so plainly.

Symptom-first table

Users usually describe a symptom, not a code.

SymptomLikely causeConfirm by
"Some users prompted for MFA, others not"Overlapping policies, or an exclusion group containing the unprompted usersCA tab per user; compare exclusions
"Worked on my laptop, fails on my phone"Device-compliance or platform condition; phone not enrolledDevice ID, join type, compliance state, platform
"Only fails in the browser"Client-app condition, token protection (browser unsupported), or app-enforced restrictionsClient app field
"Only fails in Outlook desktop"Legacy client app, or an approved-client-app requirementClient app field; check legacy protocols
"Scan-to-email stopped working"Legacy authentication blockedSign-in logs filtered to legacy client apps; identify the MFP
"Guest cannot open a shared file"Device-compliance policy catching guests; or the Rights Management exclusion missing for labelled contentUser type = Guest; check CA tab and sensitivity labels
"Prompted every single time"Sign-in frequency Every time, or persistent browser set to neverSession controls on the applicable policy
"New starter cannot register MFA"Register-security-info policy requires a managed device with no TAP pathCA tab on the registration attempt
"Admin cannot sign in after we tightened policy"Phishing-resistant strength without pre-registrationRegistered methods for that admin; check break-glass immediately
"PowerShell script broke after MFA change"IE-based credential prompt cannot handle a security keyWhich auth flow the script uses
"Sign-in fails only when travelling"Location/geographic policy, or sign-in riskLocation and IP; risk level
"Service account automation failed"All-users policy caught a non-interactive identityNon-interactive sign-in logs
"It worked for an hour then stopped"Token lifetime expiry after a policy change — the change was already live, the token had not expired yetTimestamps against the policy modification time
"Nothing changed but users are blocked"Something did change: licence assignment, group membership, device compliance drift, or a Microsoft-managed policyAudit logs; policy modified timestamps

Microsoft's information-collection list

For a user reporting a Conditional Access problem, Microsoft asks for:

user principal name · user display name · operating system name · timestamp (approximate is

fine) · target application · client application type (browser or client) · correlation ID

If the user sees a More details link on the error page, they can collect most of it

themselves. Correlation ID is the single most useful field — it identifies the exact sign-in.

Evidence request template

The agent should ask for exactly this, and nothing more:

From the Entra admin center → Entra ID → Monitoring & health → Sign-in logs, open the
failed sign-in and give me:
- Error code and failure reason
- The Conditional Access tab: which policies show Success, Failure, Not applied
- Client app, target resource
- Device ID, join type, compliance status
- Authentication requirement and authentication details
- User type, location
Do not send screenshots containing tokens, and do not send a full log export.

[VERIFY] portal navigation labels before asserting them as exact.

Output shape for troubleshooting

  1. Symptom — restated, so the user can correct a misreading before the analysis
  2. Most likely causes — ranked, with the reasoning for the ranking
  3. Evidence to collect — only the fields that would discriminate between those causes
  4. Analysis — which policy, which condition matched, which grant failed
  5. Safe remediation — smallest change first; fix the user or device before the policy
  6. Verification — how to prove it is fixed
  7. What needs tenant inspection — stated explicitly, never implied