Entra IDDeep dive

Microsoft Entra Password Protection, PTA and Seamless SSO errors: events and fixes

Event IDs and messages for Entra Password Protection DC agents and proxies, pass-through authentication agents and Seamless SSO, with cause, first check and the health tests to run.

Three hybrid identity features depend on software or accounts in your on-premises Active Directory: Microsoft Entra Password Protection (a DC agent plus a proxy), pass-through authentication (PTA) agents, and Seamless single sign-on (the AZUREADSSOACC computer account). When they fail, the evidence is mostly on-premises: event IDs, agent messages and health tests. This quick reference lists what Microsoft documents for each, with the meaning, the usual cause and the first check. The AADSTS 800xx (PTA) and 810xx (Seamless SSO) sign-in codes are in part 3 of the AADSTS list.

Codes in this quick reference

  • Event ID 10014 / 10015: password change / set validated as compliantDCAgent Admin log
  • Event ID 10016 / 10017: password change / set rejected by the Azure password policyDCAgent Admin log
  • Event ID 30002 / 30003: rejected, matched the custom banned password listDCAgent Admin log
  • Event ID 30004 / 30005: rejected, matched the Microsoft global banned password listDCAgent Admin log
  • Event ID 30026 / 30027: rejected, matched both the Microsoft and custom listsDCAgent Admin log
  • Event ID 30021 / 30022: rejected, password contains the user name or a friendly nameDCAgent Admin log
  • Event ID 10024 / 10025: audit-only, password would have been rejected but was acceptedDCAgent Admin log
  • Event ID 30008 / 30007: audit-only, would have failed the custom banned listDCAgent Admin log

+ 41 more codes in the tables below.

How this guide is organized: How to read these errors → Password Protection → Password Protection → Pass-through authentication agent errors → Seamless SSO failures → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these errors. 2. Password Protection. 3. Password Protection. 4. Pass-through authentication agent errors. 5. Seamless SSO failures. 6. How to verify a fix. Toolbox: Event ID 4769, Event ID 10014, Event ID 10016, trace-*.log, klist.1How to read these errors2Password Protection3Password Protection4Pass-through authenticationagent errors5Seamless SSO failures6How to verify a fixTOOLBOXEvent ID 4769Event ID 10014Event ID 10016trace-*.logklistHow this guide is organized: How to read these errors → Password Protection → Password Protection → Pass-through authentication agent errors → Seamless SSO failures → How to verify a fixFlow diagram of the article's sections in reading order: 1. How to read these errors. 2. Password Protection. 3. Password Protection. 4. Pass-through authentication agent errors. 5. Seamless SSO failures. 6. How to verify a fix. Toolbox: Event ID 4769, Event ID 10014, Event ID 10016, trace-*.log, klist.1How to read these errors2Password Protection3Password Protection4Pass-through authentication agent errors5Seamless SSO failures6How to verify a fixTOOLBOXEvent ID 4769Event ID 10014Event ID 10016trace-*.logklist
At a glance: how this guide is organized · 6 sections · 5 key settings and tools

How to read these errors#

Where to look when Password Protection, PTA or Seamless SSO failsWhat is failing? if Password change: Did a DC reject the new password? if Yes: Rejected by policy: read the paired events (10016 or 10017 plus a 300xx event that says which list); if No, weak accepted: Look for a validation event for that user (Audit mode, a disabled policy or a DC without the agent); if PTA sign-in: Are the PTA agents Active? if No: Bring the agents back to Active (Agent service down or unreachable; keep more than one agent); if Yes: Decode the reason in the trace log (The reason is a Win32 code: net helpmsg 1328 gives its text); if Seamless SSO: Check the sign-in code, klist and event 4769 (No 4769 means the browser never asked for a ticket)What is failing?Did a DC reject the newpassword?OKRejected bypolicy: read thepaired events10016 or 10017 plus a300xx event thatsays which listYesFIXLook for avalidation eventfor that userAudit mode, adisabled policy or aDC without the agentNo, weak acceptedPassword changeAre the PTA agents Active?FIXBring the agentsback to ActiveAgent service downor unreachable; keepmore than one agentNoFIXDecode thereason in thetrace logThe reason is aWin32 code: nethelpmsg 1328 givesits textYesPTA sign-inFIXCheck the sign-incode, klist andevent 4769No 4769 means thebrowser never askedfor a ticketSeamless SSOWhere to look when Password Protection, PTA or Seamless SSO failsWhat is failing? if Password change: Did a DC reject the new password? if Yes: Rejected by policy: read the paired events (10016 or 10017 plus a 300xx event that says which list); if No, weak accepted: Look for a validation event for that user (Audit mode, a disabled policy or a DC without the agent); if PTA sign-in: Are the PTA agents Active? if No: Bring the agents back to Active (Agent service down or unreachable; keep more than one agent); if Yes: Decode the reason in the trace log (The reason is a Win32 code: net helpmsg 1328 gives its text); if Seamless SSO: Check the sign-in code, klist and event 4769 (No 4769 means the browser never asked for a ticket)What is failing?Password changeDid a DC reject the new password?YesOKRejected by policy: read the pairedevents10016 or 10017 plus a 300xx event that sayswhich listNo, weak acceptedFIXLook for a validation event for that userAudit mode, a disabled policy or a DC without theagentPTA sign-inAre the PTA agents Active?NoFIXBring the agents back to ActiveAgent service down or unreachable; keep morethan one agentYesFIXDecode the reason in the trace logThe reason is a Win32 code: net helpmsg 1328gives its textSeamless SSOFIXCheck the sign-in code, klist and event 4769No 4769 means the browser never asked for a ticket
Figure 1 · Decision tree Where to look when Password Protection, PTA or Seamless SSO fails. Pick what's failing, then follow the branch to the evidence that explains it; the tables below decode each event and message.
  • Password Protection: on each DC, Applications and Services Logs › Microsoft › AzureADPasswordProtection › DCAgent › Admin is the main log (Operational and Trace exist; Trace is off by default). Event ranges: 10000–19999 password filter DLL, 20000–29999 service host, 30000–39999 policy logic. A rejected password logs two events sharing a CorrelationId. The proxy logs to …\ProxyService\Admin and Operational.
  • PTA: agent status in the Microsoft Entra admin center (Entra Connect), the Microsoft › AzureAdConnect › AuthenticationAgent › Admin log, per-sign-in traces in %ProgramData%\Microsoft\Azure AD Connect Authentication Agent\Trace\, and setup errors in %ProgramData%\AADConnect\trace-*.log.
  • Seamless SSO: the sign-in log error code, klist on the client, and event 4769 on DCs with success auditing enabled.
PowerShell
# Password Protection (AzureADPasswordProtection module)
Get-AzureADPasswordProtectionSummaryReport -DomainController dc01
Get-AzureADPasswordProtectionDCAgent | Format-Table ServerFQDN, SoftwareVersion, PasswordPolicyDateUTC, HeartbeatUTC, AzureTenant
Test-AzureADPasswordProtectionProxyHealth -TestAll
Test-AzureADPasswordProtectionDCAgentHealth -TestAll

# PTA, on an Authentication Agent server
Import-Module "C:\Program Files\Microsoft Azure AD Connect Authentication Agent\Modules\PassthroughAuthPSModule\PassthroughAuthPSModule.psd1"
Invoke-PassthroughAuthOnPremLogonTroubleshooter
net helpmsg 1328

Password Protection: password validation events#

CodeMeaningUsual causeFirst check
Event ID 10014 / 10015Password change / set validated as compliantNormalProves this DC's agent processed it
Event ID 10016 / 10017Password change / set rejectedA banned token; the paired 300xx event says which listRead the event with the same CorrelationId
Event ID 30002 / 30003Rejected by the custom banned listOrganization-specific termExpected in Enforce mode
Event ID 30004 / 30005Rejected by the Microsoft global listCommonly used weak passwordExpected
Event ID 30026 / 30027Rejected: tokens from both listsCombined weak termsExpected
Event ID 30021 / 30022Rejected: contains the account name or a friendly nameUser name in the passwordExpected
Event ID 10024 / 10025Audit only: would have been rejected, was acceptedPolicy in Audit modeSwitch to Enforce when ready
Event ID 30008 / 30007Audit only: custom listAudit modeSame as above
Event ID 30010 / 30009Audit only: Microsoft listAudit modeSame as above
Event ID 30028 / 30029Audit only: combined listsAudit modeSame as above
Event ID 30024 / 30023Audit only: user nameAudit modeSame as above
Event ID 10012 / 10013Password change / set errorsThe filter can't reach the DC agent service; passwords are accepted meanwhileStart the DC agent service

Password Protection: agent, proxy and policy problems#

CodeMeaningUsual causeFirst check
Event ID 30001Password accepted: no Azure password policy available yetForest or proxy not registered, no network path to a proxy, or no connectivity to other DCsRegister-AzureADPasswordProtectionForest, Register-AzureADPasswordProtectionProxy
Event ID 30006The service is now enforcing the following Azure password policy.New policy downloadedRead the Enabled and AuditOnly values
Event ID 30019Policy disabled: passwords accepted unprocessedEnable mode set to NoExpected only during emergency remediation
Event ID 30016The forest hasn't been registered with Azure.Not registered, or a Windows Server 2012/2012 R2 DC can't decrypt the registrationRegister the forest; upgrade those DCs
Event ID 30017No proxy found in the directoryNo proxy registered, or AD replication delayRegister a proxy; allow replication
Event ID 30018Can't communicate with a proxyIsolated subnet; firewall blocking TCP 135 or the proxy's RPC port; DCs missing Access this computer from the network on the proxyRestore the installer's firewall rules; grant that right to all DCs
Event ID 10023DC in Directory Services Repair Mode: all passwords approvedDSRM bootExpected until the next normal boot
Event ID 10021 / 10022Preview agent trial expiring / expired: all passwords approvedPublic preview buildUpgrade the DC agent
Event ID 30034 / 20002 (Operational)Newer DC agent / proxy version availableUpdate releasedUpgrade; the DC agent has no auto-upgrade despite the message
No proxy certificates were found - please run the Register-AzureADPasswordProtectionProxy cmdlet to register the proxy.VerifyProxyRegistration failedProxy never registeredRegister it
The RPC endpoint mapper on the specified proxy returned no resultsVerifyProxyConnectivity failedProxy service stoppedStart the service on that server
VerifyEncryptionDecryption FailedKDS encryption or decryption brokenKDS can't start (DC object outside the Domain Controllers OU, or KDS disabled), or mixed 2012/2012 R2 and 2016+ DCsnet start kdssvc; move the DC object; don't mix those OS versions
WIN32 Error Code: 0xa91 Error Message: Password doesn't meet the requirements of the filter dll'sntdsutil rejected a new DSRM passwordWeak DSRM passwordPick a stronger one; the event shows no user name
The Directory Services Restore Mode password doesn't meet a requirement of the password filter(s).Replica promotion blockedWeak DSRM password checked by an existing DCSupply a stronger password
Weak passwords acceptedPolicy not appliedAudit mode, disabled policy, expired preview agent, or the change hit a DC without the agentLook for a validation event for that user; install the agent on every DC

Also compare the AzureTenant value across all agents and proxies (they must match; re-register if not). A stale HeartbeatUTC (normally refreshed about hourly) means the agent stopped, was removed or the DC was demoted.

Pass-through authentication agent errors#

CodeMeaningUsual causeFirst check
PTA agent shows InactiveThe agent isn't serving requestsAgent service down or unreachableFeature Enabled, agents Active; keep more than one
An unexpected error occurredAgent installation or registration failedVariesCollect agent logs; contact support
Registration of the Authentication Agent failed due to blocked portsAgent can't reach the serviceFirewall or proxyOpen the documented URLs and ports
Registration of the Authentication Agent failed due to token or account authorization errorsWrong accountNot a cloud-only Hybrid Identity Administrator; known issue with MFA-enabled accountsUse a cloud-only Hybrid Identity Administrator; Microsoft's workaround is to turn MFA off for that operation only
Enabling the feature failed because there were no Authentication Agents availablePTA can't be enabledNo active agentInstall Entra Connect or a standalone agent first
Users will not be able to sign-in to Microsoft Entra ID unless you have other Pass-through Authentication agents installed on other servers.Uninstall warningRemoving the last agentAdd agents elsewhere first
Invalid username or password while the agent worksPassword validated, user still failsOn-premises UPN differs from the cloud UPN (non-routable), or the Entra Connect server isn't domain-joinedRun Invoke-PassthroughAuthOnPremLogonTroubleshooter; consider Alternate Login ID
Passthrough Authentication request failed. RequestId: '...'. Reason: '1328'.Trace log entry for one failed sign-inReason is a Win32 error codeDecode it with net helpmsg; common values below
Reason 1326 ERROR_LOGON_FAILUREThe user name or password is incorrect.Wrong passwordUser side
Reason 1327 ERROR_ACCOUNT_RESTRICTIONAccount restrictions prevent the sign-inPolicy restrictionCheck the account's restrictions
Reason 1328 ERROR_INVALID_LOGON_HOURSTime restrictions on the accountLogon hoursReview logon hours
Reason 1329 ERROR_INVALID_WORKSTATIONThis user isn't allowed to sign in to this computer.Logon To list excludes the PTA servers (agents call LogonUser)Add every agent server to the list
Reason 1330 ERROR_PASSWORD_EXPIREDThe password for this account has expired.Expired AD passwordReset it on-premises
Reason 1331 ERROR_ACCOUNT_DISABLEDAccount disabledDisabled in ADEnable it if intended

With auditing on, the agent server's Security log records each validation by AzureADConnectAuthenticationAgentService.exe. The counters # PTA authentications and # PTA authentication errors show load and failures; agents provide high availability, not load balancing, so one may see no traffic.

Seamless SSO failures#

CodeMeaningUsual causeFirst check
Sign-in codes 81001–81013Kerberos ticket problemsSee the guideGuide
AZUREADSSOACC computer account missing or disabledNo ticket can be issuedCleanup deleted or disabled itRecreate it: Disable-AzureADSSOForest, then Enable-AzureADSSOForest
https://autologon.microsoftazuread-sso.com in Trusted sitesSign-in blockedWrong zonePut it in the Local intranet zone
AzureADSSOAcc$ moved from RC4_HMAC_MD5 to AESSSO stopsKey not rolled over firstRoll over the Kerberos decryption key
Clock more than five minutes offKerberos failsTime syncFix time on the device and DCs
Still no SSO after re-enablingOld tickets cached (typically 10 hours)Disable and re-enableklist purge, then retry
30 or more AD forestsCan't enable in Entra ConnectWizard limitEnable the feature manually
25600-character policy limitCan't add more forestsMany forests in the policyEnable one forest per trust; trusted forests inherit it
Disable-AzureADSSOForest / Enable-AzureADSSOForest failsForest operation failsDomain admin in Protected Users, or name not in SAM formatUse another domain admin as contoso\johndoe
Event ID 4769 with ServiceName AZUREADSSOACC$A ticket was issued for Seamless SSONormal sign-inAbsent: the browser never asked (zone, network or Entra join SSO first)

In a few cases, enabling takes up to 30 minutes. Microsoft lists no support in Firefox private browsing, Internet Explorer Enhanced Protected Mode or mobile browsers. Kerberos failure codes in 4769 events are in the Kerberos reference.

How to verify a fix#

  1. Password Protection: both -TestAll health tests return Passed, every DC shows a fresh HeartbeatUTC, and a banned test password on a DC with the agent logs 10016 plus a 300xx event.
  2. PTA: every agent is Active, a test sign-in succeeds and the trace folder shows no new failures.
  3. Seamless SSO: klist lists a ticket for AZUREADSSOACC, the DC logs 4769, and the sign-in completes without a password prompt. Get-AzureADSSOStatus lists every forest.

Choosing between these methods is covered in PHS vs PTA vs federation.

References#

Written and checked against current Microsoft Learn documentation. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

Written by

Omer Eltayeb

M365 Subject Matter Expert, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Configuration Manager, Microsoft Entra ID, Microsoft Defender, Exchange and Microsoft 365 with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)