PRACTITIONER GUIDE | IDENTITY SECURITY
Practitioner GuideUpdated 11 min read

Entra Connect Sync Error Troubleshooting: How to Diagnose and Fix the Synchronization Failures That Break Hybrid Identity

30 min
default sync cycle interval for Entra Connect -- delta sync runs every 30 minutes; full sync is triggered manually or after configuration changes
AttributeValueMustBeUnique
is the most common Entra Connect sync error type -- caused by two on-premises objects with the same ProxyAddresses or UserPrincipalName value attempting to sync to Entra ID
Entra Connect Health
requires Entra ID P1 or P2 and provides a cloud-based dashboard for sync errors, latency alerts, and object export failures without needing to RDP to the sync server
Staging mode
runs Entra Connect in a read-only state -- imports and syncs objects but does not export to Entra ID -- use staging mode for testing configuration changes safely

SponsoredRetool

Retool's new app builder is where AI-generated code ships safely

Building apps with AI is easy. Getting them to production safely is another story.

Start building for free today

Entra Connect Sync operates in cycles: import from AD, run sync rules, export to Entra ID. Errors can occur at any stage. The most disruptive errors are export failures -- the sync rule ran correctly but the export to Entra ID was rejected because the object violates a uniqueness constraint or attribute validation rule. Identifying which objects are failing and why requires reading the Synchronization Service Manager connector space and the Entra ID sync error report.

Reading the Synchronization Service Manager for Export Errors

Open the Synchronization Service Manager on the Entra Connect server (Start > Synchronization Service):

  1. Click the Connectors tab
  2. Select the 'contoso.onmicrosoft.com - AAD' connector (the Entra ID connector)
  3. Click 'Search Connector Space'
  4. Set 'Scope' to 'Export Error' and click 'Search'

This shows all objects that failed to export to Entra ID in the last sync cycle. Double-click any object to see the specific error and the attribute values that caused it.

Alternatively, use PowerShell:

# List all objects currently in export error state
Get-ADSyncCSObject -ConnectorName "contoso.onmicrosoft.com - AAD" `
    | Where-Object {$_.ErrorName -ne ""} `
    | Select-Object DistinguishedName, ErrorName, ErrorDetail `
    | Format-Table -AutoSize

# Trigger a delta sync to refresh the error state after a fix
Start-ADSyncSyncCycle -PolicyType Delta

For organizations with Entra Connect Health deployed, sync errors are also visible at: Entra ID admin center > Identity > Hybrid management > Connect Health > Sync errors. This view is accessible to Entra ID admins without needing RDP access to the sync server.

Fixing Duplicate Attribute Conflicts (AttributeValueMustBeUnique)

Duplicate attribute conflicts are the most common sync error. Two on-premises objects have the same value for a unique attribute (UserPrincipalName, ProxyAddresses, or MailNickName). Entra ID rejects the second object.

Identify the conflicting objects:

# Find all objects with AttributeValueMustBeUnique errors
Get-ADSyncCSObject -ConnectorName "contoso.onmicrosoft.com - AAD" `
    | Where-Object {$_.ErrorName -eq "AttributeValueMustBeUnique"} `
    | ForEach-Object {
        [PSCustomObject]@{
            DN = $_.DistinguishedName
            Error = $_.ErrorName
            Detail = $_.ErrorDetail
        }
    }

For ProxyAddresses conflicts specifically:

# Find all AD users sharing a specific email address
$conflictingEmail = "user@domain.com"
Get-ADObject -Filter {ProxyAddresses -like "*$conflictingEmail*"} -Properties ProxyAddresses |
    Select-Object DistinguishedName, ObjectClass, ProxyAddresses

Resolution options:

  1. Remove the duplicate from one object: Remove the conflicting ProxyAddresses value from the object that should NOT be the primary holder
  2. Soft match the cloud object: If a cloud-only account already exists with the same UPN, use the ImmutableId to hard-match it to the on-premises object
  3. Enable Duplicate Attribute Resiliency (should already be on by default in recent Entra Connect versions):
Get-MsolDirSyncFeatures | Where-Object {$_.Feature -eq "EnableSoftMatchOnUpn"}
Set-MsolDirSyncFeature -Feature DuplicateUPNResiliency -Enable $true
Set-MsolDirSyncFeature -Feature DuplicateProxyAddressResiliency -Enable $true

With resiliency enabled, the duplicate object syncs with the conflicting attribute quarantined (replaced with a placeholder value) rather than blocking the entire object from syncing.

Free daily briefing

Briefings like this, every morning before 9am.

Threat intel, active CVEs, and campaign alerts, distilled for practitioners. 50,000+ subscribers. No noise.

Object Filtering: Why a Specific User Is Not Syncing

If a user exists in AD but not in Entra ID, the object may be excluded by a sync filter:

Check 1: Is the OU included in Entra Connect's OU filter? Entra Connect admin UI: Configure > Customize synchronization options > Filter users and devices > select domain and check OU list. If the user's OU is unchecked, they are excluded.

Check 2: Is an attribute-based filter excluding the object? Check the Synchronization Rules Editor for inbound rules with scoping filters:

# List all active inbound sync rules with scoping filters
Get-ADSyncRule | Where-Object {$_.Direction -eq "Inbound" -and $_.ScopeFilter -ne ""} |
    Select-Object Name, ScopeFilter | Format-List

Check 3: Is the user in the connector space at all?

# Search for the specific user in the AD connector space
Get-ADSyncCSObject -ConnectorName "domain.com - ADMA" -DistinguishedName "CN=John Smith,OU=Users,DC=domain,DC=com"

If the user is not found in the connector space, they are filtered out before sync rules run. If they are in the connector space but not in the metaverse, a sync rule is excluding them.

Check 4: Force a preview of what would sync for the object From Synchronization Service Manager: Metaverse Search > find the object > Connectors tab > preview the sync rules applied to see why the object is not exporting to Entra ID.

Password Sync and Writeback Failures

Password hash synchronization (PHS) failures prevent cloud authentication from working with on-premises passwords:

# Check PHS sync status
Get-ADSyncAADPasswordSyncConfiguration -SourceConnector "domain.com - ADMA" |
    Select-Object Enabled, PasswordSyncState

# Force a full password hash sync for a specific user
Invoke-ADSyncRunStep -ConnectorName "domain.com - ADMA" -RunProfile "Full Synchronization"

# Check password sync events in the Application event log
Get-WinEvent -LogName Application -ProviderName 'Directory Synchronization' `
    | Where-Object {$_.Message -match 'password'} `
    | Select-Object TimeCreated, Message `
    | Select-Object -First 20

For password writeback failures (SSPR writing back to on-premises AD):

# Check password writeback configuration
Get-ADSyncAADPasswordResetConfiguration -Connector "contoso.onmicrosoft.com - AAD" |
    Select-Object Enabled

# Common writeback failure: Entra Connect service account lacks 'Reset Password' permission
# on the user OU -- verify with:
$syncAccount = (Get-ADSyncConnector -Name "domain.com - ADMA").ConnectivityParameters |
    Where-Object {$_.Name -eq "forest-login-user"} | Select-Object -ExpandProperty Value
Write-Output "Sync account: $syncAccount"
# Then verify this account has Reset Password delegated on the target OUs

Recovering from a Stuck or Crashed Sync Cycle

If the sync service is not running or a sync cycle is stuck:

# Check sync service status
Get-Service ADSync

# Check if a sync cycle is currently running
Get-ADSyncScheduler | Select-Object SyncCycleInProgress, NextSyncCyclePolicyType, NextSyncCycleStartTimeInUTC

# If stuck in SyncCycleInProgress = True for more than 2 hours, restart the service
Restart-Service ADSync

# After restart, check connector run history for errors
Get-ADSyncConnectorRunStatus | Select-Object ConnectorName, RunProfileName, Result, StartDate, EndDate |
    Sort-Object StartDate -Descending | Select-Object -First 20

For the Synchronization Service database (SQL LocalDB or full SQL), if it becomes corrupted:

  1. Stop the ADSync service
  2. Check the Application event log for SQL errors from ADSync source
  3. For LocalDB corruption, run: SqlLocalDB.exe info ADSync to check instance state
  4. If the database is unrecoverable, reinstall Entra Connect in staging mode first, verify the configuration, then promote to active

Before any Entra Connect upgrade or configuration change:

# Export current configuration (creates a JSON backup)
Get-ADSyncGlobalSettings | ConvertTo-Json -Depth 10 | Out-File entra-connect-config-backup.json

The bottom line

Entra Connect Sync errors surface in the Synchronization Service Manager's export error view and in the Entra ID sync error report (for Connect Health subscribers). Duplicate attribute conflicts (ProxyAddresses, UPN) are the most common export failure -- enable DuplicateUPNResiliency and DuplicateProxyAddressResiliency to quarantine duplicates rather than blocking entire objects. For missing users, work through the filtering checklist: OU filter, attribute-based filter, connector space presence, and metaverse sync rule evaluation.

Frequently asked questions

How do I find out which on-premises AD attribute is mapped to a specific Entra ID attribute?

Open the Synchronization Rules Editor on the Entra Connect server (Start > Synchronization Rules Editor). Select Direction: Outbound, Target Object Type: user. Each rule shows its attribute mappings. For example, the 'Out to AAD - User Identity' rule maps AD attributes like userPrincipalName, mail, and givenName to their Entra ID equivalents. You can also use: `Get-ADSyncRule | Where-Object {$_.Direction -eq 'Outbound' -and $_.TargetObjectType -eq 'user'} | Select-Object Name, AttributeFlowMappings | Format-List`.

What is the difference between a delta sync and a full sync in Entra Connect?

A delta sync (the default every 30 minutes) only processes objects that have changed in AD since the last sync cycle. A full sync re-evaluates all objects regardless of whether they changed. Run a full sync after: changing sync rules, modifying OU filters, or recovering from a sync failure where the delta watermark may be inconsistent. Full syncs on large directories can take 30-90 minutes. Run: `Start-ADSyncSyncCycle -PolicyType Initial` for full sync, or `Start-ADSyncSyncCycle -PolicyType Delta` for delta sync.

Can I sync multiple on-premises AD forests to a single Entra ID tenant?

Yes. Entra Connect supports multi-forest deployments. Each forest gets its own AD connector in Entra Connect. Objects from all forests are merged in the metaverse using join rules (typically matching on mail or employeeID attributes to link the same person's accounts across forests). In multi-forest environments, UPN suffix conflicts between forests are a common sync error source. Configure unique UPN suffixes for each forest before deploying Entra Connect in a multi-forest topology.

How do I safely upgrade Entra Connect without causing an authentication outage?

Use the swing migration approach: deploy a new Entra Connect server in staging mode, let it import the full directory, verify the configuration matches the production server, then promote the new server to active and retire the old one. This involves no downtime. For in-place upgrades, the Entra Connect installer handles upgrades automatically -- download the latest installer, run it on the production server, and it detects the existing installation and upgrades it. The service is unavailable for 5-15 minutes during in-place upgrade; delta sync will catch up immediately after the upgrade completes.

What causes objects to be stuck in the Entra Connect metaverse without syncing to Entra ID?

Objects stuck in the metaverse typically result from export errors on the Entra ID connector. Check Synchronization Service Manager > Operations > Export to the Entra ID connector for error entries on the specific object. Common export errors: AttributeValueMustBeUnique (the UPN or ProxyAddress conflicts with an existing cloud-only object), InvalidSoftMatch (a cloud-only object exists but cannot be matched for takeover), ExportErrorType-InvalidData (an attribute value violates Entra ID constraints such as a displayName exceeding 256 characters). Each error requires a specific resolution -- attribute deduplication, soft match enablement, or attribute value cleanup -- and then a manual Export run to push the fix.

How do I migrate from Entra Connect to Entra Cloud Sync?

Entra Cloud Sync is Microsoft's cloud-based replacement for Entra Connect, using lightweight provisioning agents rather than a server-hosted sync service. It supports most common synchronization scenarios but has limitations compared to full Entra Connect: it does not support group writeback for all group types, Exchange hybrid configurations, or device writeback. Before migrating: verify your environment meets cloud sync requirements (domain functional level, AD schema extensions), document all customized sync rules and attribute mappings in your current Entra Connect, and plan for any unsupported features. The migration process involves deploying the provisioning agent, creating a cloud sync configuration in the Entra ID portal that mirrors your current OU scope and attribute mappings, running the new configuration in parallel (both Entra Connect and Cloud Sync can run simultaneously with proper filtering to avoid conflicts), and then decommissioning Entra Connect once validation is complete.

Sources & references

  1. Microsoft: Troubleshoot object synchronization with Azure AD Connect
  2. Microsoft: Troubleshoot errors during synchronization
  3. Microsoft: Entra Connect Health for Sync

Free resources

25
Free download

Critical CVE Reference Card 2025–2026

25 actively exploited vulnerabilities with CVSS scores, exploit status, and patch availability. Print it, pin it, share it with your SOC team.

No spam. Unsubscribe anytime.

Free download

Ransomware Incident Response Playbook

Step-by-step 24-hour IR checklist covering detection, containment, eradication, and recovery. Built for SOC teams, IR leads, and CISOs.

No spam. Unsubscribe anytime.

Free newsletter

Get threat intel before your inbox does.

50,000+ security professionals read Decryption Digest for early warnings on zero-days, ransomware, and nation-state campaigns. Free, daily, no spam.

Unsubscribe anytime. We never sell your data.

Eric Bang
Author

Founder & Cybersecurity Evangelist, Decryption Digest

Cybersecurity professional with expertise in threat intelligence, vulnerability research, and enterprise security. Covers zero-days, ransomware, and nation-state operations for 50,000+ security professionals every morning.

Black Hat Giveaway

Win a $2,495 Black Hat pass.

Full-access to Black Hat USA 2026 in Las Vegas. Subscribe free to enter.

Joins Decryption Digest daily briefing. Unsubscribe anytime.

Giveaway: Black Hat USA 2026 Full-Access Pass ($2,495 value)

Details →
Daily Briefing

Subscribe to enter the giveaway

Every subscriber is automatically entered. You also get daily threat intel every morning: zero-days, ransomware, and nation-state campaigns. Free. No spam.

Already subscribed? You're already entered.

Giveaway

Win a $2,495 Black Hat USA 2026 pass.