In this blog post, I will show you how to fix failed to sync the ArchiveGUID error. I recently encountered an issue in the Microsoft 365 admin center while reviewing the account information of a user with archiving enabled. At the top of the user’s account properties pane, the following error message was displayed:
Exchange: Failed to sync the ArchiveGuid 00000000-0000-0000-0000-000000000000 of mailbox 5d3475-987d-128b-8322b-803ujf33437c because one cloud archive ryb432303-f639-423e3-8edsb-1a9hebfyfd85 exists.; Exchange: An unknown error has occurred. Refer to correlation ID: 6bhrkmnr-7777-4a81-bf09-60jkfd376fba85; Exchange: An unknown error has occurred. Refer to correlation ID: 6b757fdfkld7777-4a81-bf09-6dshdeennrba85; Exchange: An unknown error has occurred. Refer to correlation ID: 6jdksjkds76bf-7777-4a81-bfskjds-6090ejkejba85 |
When users are synchronized from on-premises Active Directory to Entra ID, whether a local Exchange server is still in place or has already been decommissioned, you might encounter issues with certain user account attributes. These attribute discrepancies are often the root cause of such problems.
Fix Failed to Sync the ArchiveGuid Error
Launch PowerShell console as an administrator and execute the following commands to fix Failed to Sync the ArchiveGuid Error.
Install Exchange Online and Microsoft Graph PowerShell module (More Information)
Install-Module ExchangeOnlineManagement
Import-Module Microsoft.Graph
For detailed instructions on installing Exchange Online PowerShell module, refer to the link: Install Exchange Online PowerShell Module.
Import Exchange Online and Microsoft Graph modules
Import-Module ExchangeOnlineManagement
Import-Module Microsoft.Graph
Connect to Exchange Online and Microsoft Graph
Connect-MgGraph -Scopes "User.Read.All","Directory.Read.All"
Connect-ExchangeOnline
Get-Provisioning-Errors.ps1: List all the users with errors
$erroredUsers = Get-MgUser -All -Property "id,userPrincipalName,displayName,assignedLicenses,onPremisesSyncProvisioningErrors" |
Where-Object { $_.onPremisesSyncProvisioningErrors -and $_.onPremisesSyncProvisioningErrors.Count -gt 0 } |
Select-Object `
UserPrincipalName,
DisplayName,
@{Name='IsLicensed';Expression={ $_.assignedLicenses.Count -gt 0 }}
$erroredUsers
- Check more information about the error for a particular user using below command. Replace [email protected] with the affected user’s UPN.
Get more details about the error
(Get-MgUser -UserId "[email protected]" -Property "onPremisesSyncProvisioningErrors").onPremisesSyncProvisioningErrors | FL *
Example:
(Get-MgUser -UserId "[email protected]" -Property "onPremisesSyncProvisioningErrors").onPremisesSyncProvisioningErrors | FL *
Sample Output
Category : PropertyConflict
OccurredDateTime : 2025-08-14T09:32:15Z
PropertyCausingError : ArchiveGuid
Value : 11111111-2222-3333-4444-555555555555
AdditionalDetails : {}
SuggestedAction : Update the ArchiveGuid in Azure AD to match the value in Exchange Online
- Get the ArchiveGuid and the ArchiveName for the affected user. To do this, execute the following command (replace UserPrincipleName with the UserPrincipleName from the affected user).
Get ArchiveGuid and ArchiveName values
Get-Mailbox <UserPrincipleName> | FL Archive*
Example:
Get-Mailbox [email protected] | FL Archive*
- Copy the ArchiveGuid value and run the following command, replacing ArchiveGuid with the value you obtained earlier. This command will convert the GUID to hexadecimal.
Convert GUID to Hexadecimal
(([guid]'<GUID>').ToByteArray() | % { $_.ToString('x2') }) -join ' '
Example:
(([guid]'eb71f9d6-3a1d-469f-b47d-0400d46b4697').ToByteArray() | % { $_.ToString('x2') }) -join ' '
- [Optional] You can also use the below All in One command. This command will provide the UserName, ArchiveGUID, ArchiveGUID – HEX Value, and ArchiveName from the cloud mailbox.
[Optional] Get UserName, ArchiveGUID, ArchiveGUID – HEX Value, and ArchiveName
Get-MgUser -All -Property "userPrincipalName,onPremisesSyncProvisioningErrors" |
Where-Object { $_.onPremisesSyncProvisioningErrors -and $_.onPremisesSyncProvisioningErrors.Count -gt 0 } |
ForEach-Object { Get-Mailbox -Identity $_.UserPrincipalName } |
Select-Object Name, ArchiveGuid, @{Name='ArchiveGUID - HEXVALUE';Expression={ ($_.ArchiveGuid.ToByteArray() | ForEach-Object { $_.ToString('x2') }) -join ' ' }}, ArchiveName
- Open Active Directory Users and Computers (dsa.msc), search for the user object, then click Properties and go to the Attribute Editor tab. If you don’t see the Attribute Editor tab, it may be because Advanced Features are not enabled in the AD snap-in. In the Active Directory Users and Computers snap-in, click View, then select Advanced Features.
- We will need to make the following four changes to the user object to resolve this issue.
AD User Attributes | Set it to below values |
---|---|
mailNickname | Ensure that mailNickname is set. mailNickname is usually the same as everything before the @ symbol in the email address. |
msExchArchiveGUID | Use the ArchiveGuid Hexadecimal Value and populate it in the msExchArchiveGUID. |
msExchArchiveName | Use the ArchiveName value and populate it in the msExchArchiveName. |
msExchRemoteRecipientType | Set it to 3 |
- Now, we need to synchronize the changes to Entra ID using the Entra Connect server. You can either force a delta sync using the following command or wait approximately 30 minutes for the changes to sync automatically.
- Open PowerShell console (as admin) and execute below command to run Delta Sync.
Run Delta sync
Start-ADSyncSyncCycle -PolicyType Delta
- [Optional] Full sync is not required in most of the cases. However, in a troubleshooting scenario where you want to ensure that all objects as per the selection in Entra Connect Sync app are synced with Entra ID, you can run a full export. Please note that full export may take some time to complete.
Run Full Sync (Optional)
Start-ADSyncSyncCycle -PolicyType Initial
- After you’ve fixed the AD user object for all affected users, run below command again to verify and ensure that no users remaining with errors.
Verify If there are still users with Errors
$erroredUsers = Get-MgUser -All -Property "id,userPrincipalName,displayName,assignedLicenses,onPremisesSyncProvisioningErrors" |
Where-Object { $_.onPremisesSyncProvisioningErrors -and $_.onPremisesSyncProvisioningErrors.Count -gt 0 } |
Select-Object `
UserPrincipalName,
DisplayName,
@{Name='IsLicensed';Expression={ $_.assignedLicenses.Count -gt 0 }}
$erroredUsers
Further Troubleshooting
If you still encounter the same error after updating the attribute values and waiting 30 minutes following the delta sync, confirm that the mailNickName, mail, msExchArchiveGuid, and msExchArchiveName attributes are syncing to Entra ID. Start an initial synchronization to Entra ID using the command Start-ADSyncSyncCycle -PolicyType Initial to trigger a full sync. Wait for the replication to complete, then recheck for the issue.
Great How-To, thank you for that!
Works!
You’r Welcome Marcel. I am glad that it helped.
Thanks for taking your time to create this document, it worked for me.
No Problem Marc. Thanks for the feedback.
I have tried so many of the other solutions but this one work for every step – thank you