Self-service password reset (SSPR) fails in two places: on the reset page, where the user gets an SSPR_00xx code, and on the Microsoft Entra Connect server, where password writeback logs what Active Directory did with the new password. This quick reference lists every code and event Microsoft documents for both, with the meaning, the usual cause and the first check, plus the healthy event sequence to look for when you test a fix.
Codes in this quick reference
SSPR_0009 TenantSSPRFlagDisabled: password reset isn't enabled for the organizationPassword reset pageSSPR_0010 WritebackNotEnabled: password writeback hasn't been enabledPassword reset pageSSPR_0011 SsprNotEnabledInUserPolicy: no password reset policy is definedPassword reset pageSSPR_0012 UserNotLicensed: required licenses are missingPassword reset pageOnPremisesSuccessCloudFailure: password reset on-premises, cloud update not committed yetPassword reset pageOn-premises policy violation: the new password fails the Active Directory password policyPassword reset pagePassword doesn't comply with fuzzy policy: the password is on the banned password listPassword reset / change pageUnable to configure password writeback. Ensure you have the required license.Entra Connect wizard
+ 27 more codes in the tables below.
How to read these codes#
- Password reset page (
https://passwordreset.microsoftonline.com, reached throughhttps://aka.ms/sspror the Forgot my password link): the user sees a sentence plus Technical details with the code. Each code also has an internal name such asUserNotLicensed = 12. Ask the user for the code and the Support code GUID at the bottom of the page. - Application log on the Entra Connect server: two sources matter.
PasswordResetServicecovers the writeback service itself: 31xxx events for each reset and the service's own state (progress and some failures), 32xxx service and connectivity errors, 33xxx Active Directory results.ADSynccovers what happened when the sync engine set the password in Active Directory. - Cloud Sync: users see the same reset page when writeback runs through the provisioning agent; the agent's permissions and version cause most failures (last table).
- Reset or change? A reset means nobody supplied the current password (user or admin); a change means the user typed it. They log different event IDs, so test one operation at a time.
For the full setup walk-through (scope, licensing, writeback permissions), see Self-service password reset and password writeback: fixing the usual failures. Sync errors on the same server are in the Entra Connect sync errors quick reference.
Password reset page codes (SSPR_00xx)#
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
SSPR_0009 TenantSSPRFlagDisabled | Password reset isn't enabled for the organization. | Self-service password reset enabled is set to None. | Entra ID › Password reset › Properties: Selected (right group) or All. |
SSPR_0010 WritebackNotEnabled | The password is managed on-premises but writeback is off. | Synced, federated or pass-through user; writeback never enabled. | Enable writeback in Entra Connect or Cloud Sync, then on Password reset › On-premises integration. |
SSPR_0011 SsprNotEnabledInUserPolicy | No password reset policy is defined. | Methods and the number required were never configured. | Password reset › Authentication methods. |
SSPR_0012 UserNotLicensed | Required licenses are missing. | The user's license doesn't include SSPR for this scenario. | The user's licenses; writeback needs at least Entra ID P1. |
SSPR_0013 UserNotMemberOfScopedAccessGroup | User isn't in the group enabled for reset. | Scope is Selected and the user is outside the group. | Add the user to the group (nested groups work). |
SSPR_0014 UserNotProperlyConfigured | Not enough security info registered. | Policy needs one or two methods; the user has fewer. | Admin resets the password; the user registers at https://aka.ms/ssprsetup. |
SSPR_0029 OnPremisesAdminActionRequired | Error in the on-premises configuration. | Connector account permissions, a synced AD administrator, or blocked remote calls to SAM. | Events 33004 and 6329; see the SSPR_0029 troubleshooter. |
SSPR_0030 OnPremisesConnectivityError | Poor connection with the on-premises environment. | Service Bus traffic blocked; proxy or idle time-outs. | Events 31034 and 32002; test the namespace (below). |
| OnPremisesSuccessCloudFailure | Reset written to AD, cloud copy not committed yet. | Time-out, cloud password policy or throttling. | Wait a few minutes, then sign in with the new password. |
Note: Microsoft documents a second wording for code 29: SSPR_0029: Your organization hasn't properly set up the on-premises configuration for password reset. Treat it exactly like the first one.
Registration and usage messages without a code#
| Message | Meaning | Usual cause | First check |
|---|---|---|---|
Your administrator has not enabled you to use this feature. | User isn't enabled for SSPR. | SSPR off, user outside the scoped group, or no license. | Properties scope and the user's licenses. |
| On-premises policy violation | AD rejected the new password. | Length, complexity, history or minimum age. | Pick another password; check the domain and fine-grained policies. |
| Password doesn't comply with fuzzy policy | Password is on the banned password list. | Banned password protection. | Choose a password without banned terms. |
| Throttled (no code) | Reset blocked for the account. | Five phone validations, five security-question tries or five resets of one account within an hour. | Wait 24 hours after the last attempt. |
| SMS or call never arrives | Stored number unusable. | Wrong format; extensions are stripped. | Store it as +1 4251234567, no extension. |
| Error validating the phone number | Typed number doesn't match the stored one. | Country or area code missing. | Enter the complete number. |
| Error when the user ID is an email address | UPN differs from the primary SMTP address. | Email as an alternate login ID isn't enabled. | Use the UPN, or enable email sign-in. |
| Admin ignores your SSPR policy | Admins get Microsoft's own policy. | Built-in administrator reset policy. | Register two methods for admin accounts. |
Writeback events on the Entra Connect server#
Service and connectivity (31xxx and 32xxx)#
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
31003 / 31008 / 31011 PasswordResetFail / ChangePasswordFail / ResetUserPasswordByAdminFail | Password reached on-premises but couldn't be set (user reset / change / admin reset). | Domain policy, missing connector permission, or a protected group. | The 33xxx or 6329 event logged with it. |
31014 OffboardingEventFail | Disabling writeback failed. | Admin permissions, or a federated Hybrid Administrator. | Rerun with a managed cloud admin. |
31016 WriteBackServiceStopped | Writeback stopped; cloud requests fail. | Service restart or endpoint failure. | Event 6800; restart ADSync. |
31034 ServiceBusListenerError | Can't connect to the Service Bus listener. | Firewall or proxy; The remote certificate is invalid means root CAs are missing. | Namespace in the event; Azure TLS certificate changes. |
31044 | Writeback isn't healthy: no service host for the two Service Bus relays is running. | Blocked endpoints, time skew. | Connectivity, then restart ADSync. |
32000 UnknownError | Unknown error in a password operation. | Varies. | Exception text; disable and re-enable writeback. |
32001 ServiceError | Can't reach the cloud password reset service. | Outbound HTTPS blocked. | *.passwordreset.microsoftonline.com reachable. |
32002 ServiceBusError | Can't reach the tenant's Service Bus. | Outbound TCP 443 blocked. | *.servicebus.windows.net allowed. |
32003 InPutValidationError | Invalid input to the web service API. | Transient. | Retry the operation. |
32004 DecryptionError | Password from the cloud can't be decrypted. | Key mismatch. | Disable and re-enable writeback. |
32005 / 32007 ConfigurationError / OnBoardingConfigUpdateError | Tenant configuration can't be saved, read or updated. | Onboarding or start-up problem. | Disable and re-enable writeback to rewrite it. |
32008 ValidationError | Invalid response from the web service. | Service or network interference. | Disable and re-enable writeback. |
32009 AuthTokenError | No token for the setup Hybrid Administrator. | Wrong password or federated account. | Rerun setup with a managed admin. |
32010 CryptoError | Key creation or decryption failed. | Server environment. | Event details; disable and re-enable. |
32011 / 32013 OnBoardingServiceError / OffBoardingError | Onboarding or offboarding can't reach the service. | Firewall (TCP 443, 9350–9354) or token problem. | Ports open; non-federated admin. |
32014 ServiceBusWarning | Service Bus connection retried. | High latency or low bandwidth if frequent. | How often it repeats. |
32015 ReportServiceHealthError | Five-minute health heartbeat failed. | Connectivity. | Same checks as 32001. |
Active Directory results (33xxx)#
| Code | Meaning | Usual cause | First check |
|---|---|---|---|
33001 ADUnKnownError | AD returned an unknown error. | Reserved characters in the OU path: leading space or #, trailing space, , + " \ < > ; = /, line feed or carriage return. | ADSync events at the same time; OU names. |
33002 ADUserNotFoundError | User not found on-premises. | Deleted on-premises only, or a sync problem. | Recent sync run details. |
33003 ADMutliMatchError | Two users share the cloud anchor. | Duplicate anchor values. | Sync logs for the duplicates. |
33004 ADPermissionsError | Connector account can't set this password. | Missing Reset password right, inheritance off, or adminCount = 1. | Effective Access for the connector account. |
33005 / 33006 ADUserAccountDisabled / ADUserAccountLockedOut | Account disabled or locked out on-premises. | Account state. | Enable or unlock; trace lockouts with the logon failure reference. |
33007 ADUserIncorrectPassword | Wrong current password in a change. | Typo or stale password. | Retry with the right password. |
33008 ADPasswordPolicyError | New password fails domain policy. | Age, history, complexity or filter. | Minimum password age 0 while testing. |
33009 ADConfigurationError | AD configuration issue blocked the write. | Varies. | ADSync events for the detail. |
ADSync and sync engine messages#
| Message | Meaning | Usual cause | First check |
|---|---|---|---|
6329 0x80230619 A restriction prevents the password from being changed to the current one specified. | AD refused the password. | Domain policy, or the PASSWD_CANT_CHANGE flag. | Policy and the user's flags. |
6329 The server doesn't contain the LDAP password policy control. | DCs lack the policy hints control (1.2.840.113556.1.4.2066). | Old domain controllers. | DCs on Windows Server 2016 or later. |
6329 0x8023061f | Password sync isn't enabled on this management agent. | Forest added after writeback was enabled. | Disable and re-enable writeback. |
6800 | Writeback endpoint didn't start with ADSync. | Onboarding or endpoint error. | PasswordResetService events beside it. |
hr=800700CE The filename or extension is too long | Unlock or reset fails. | Connector account password over 256 characters. | Shorter password; update the connector credentials. |
hr=80230402 | Duplicated entries with the same anchor. | Same user enabled in several forests. | A unique anchor per user. |
| Object could not be found | No connector space or metaverse object. | User isn't synced by this server. | AD object joined to the metaverse by Microsoft.InfromADUserAccountEnabled.xxx. |
| Multiple matches found | Enabled accounts in more than one forest. | Unsupported for writeback. | Keep one enabled account. |
Healthy events (what good looks like)#
31001→31002: a user reset arrived and was written to AD.31006→31007: the same for a password change.31009→31010: an admin reset on behalf of a user.31004→31005: onboarding when you enable writeback, with31017(admin token) and31018(encryption key) along the way.31012→31013: offboarding.31015: the service started and accepts requests.31019: a Service Bus heartbeat succeeded; it names the namespace you can test.
Setup and Cloud Sync errors#
| Error | Meaning | Usual cause | First check |
|---|---|---|---|
Unable to configure password writeback. Ensure you have the required license. | Entra Connect wizard couldn't onboard writeback. | Unlicensed or federated admin, server clock skew, TLS 1.2 off. | Licensed cloud admin, correct time, TLS 1.2 (Microsoft's article). |
| On-premises integration tab missing | Writeback options hidden. | No sync agent configured. | Set up Entra Connect or a Cloud Sync agent first. |
| Cloud Sync: writes fail for everyone | The agent's gMSA lacks writeback rights. | Reset password, lockoutTime, pwdLastSet or Unexpire Password missing. | Set-AADCloudSyncPermissions (below). |
| Cloud Sync: writes fail for some users | Rights don't reach those objects. | Inheritance disabled. | Re-enable inheritance. |
| Cloud Sync writeback unavailable | Feature not offered. | Agent older than 1.1.977.0, or Azure operated by 21Vianet. | Upgrade the agent, or use Connect Sync. |
| Admin reset never lands on-premises | Operation not written back. | Reset from the Microsoft 365 admin center or PowerShell (unsupported in the Cloud Sync docs). | Reset from the Entra admin center or Microsoft Graph. |
Import-Module 'C:\Program Files\Microsoft Azure AD Connect Provisioning Agent\Microsoft.CloudSync.Powershell.dll'
Set-AADCloudSyncPermissions -PermissionType PasswordWriteBack -EACredential (Get-Credential)
Set-AADCloudSyncPasswordWritebackConfiguration -Enable $true -Credential (Get-Credential)New permissions can take an hour or more to replicate to every object. The trade-offs between both tools are in Cloud Sync vs Connect Sync.
How to verify a fix#
- Connectivity first. Take the namespace from the latest 31019 or 31034 event and test it. Good:
TcpTestSucceeded : True.PowerShellTest-NetConnection -ComputerName <namespace>.servicebus.windows.net -Port 443 - Reproduce one operation with a test user in scope, then read the log. Good: 31001 then 31002 (or 31006 then 31007), and no 32xxx, 33xxx or 6329 entries.
PowerShell
Get-WinEvent -FilterHashtable @{ LogName = 'Application'; ProviderName = 'PasswordResetService'; StartTime = (Get-Date).AddMinutes(-30) } | Select-Object TimeCreated, Id, LevelDisplayName, Message | Format-Table -Wrap - Confirm AD took it:
Get-ADUser testuser -Properties PasswordLastSet | Select-Object Name, PasswordLastSetshows the time of the reset. - Sign in on-premises and in the cloud with the new password, and restore any password policy you relaxed for testing.
Password change failures shown at sign-in carry AADSTS codes instead; see AADSTS error codes 120000 and above.
References#
- Troubleshoot self-service password reset in Microsoft Entra ID (Microsoft Learn): SSPR_00xx codes and usage errors.
- Troubleshoot self-service password reset writeback (Microsoft Learn): event log codes and common writeback errors.
- Enable cloud sync self-service password reset writeback (Microsoft Learn): Cloud Sync prerequisites, permissions and unsupported operations.

