Purview retention, records and audit errors: policy statuses, holds and audit search
Quick reference for Purview retention and label policy statuses, Teams and SharePoint retention messages, records and disposition, mailbox holds and audit search errors.
Omer Eltayeb8 min readChecked against Microsoft Learn0 views
Retention problems rarely arrive as a numbered error. You get a status line in a policy's details pane, a mailbox property, a system message in Teams or an audit search that returns nothing. This quick reference collects the retention, records, hold and audit messages and statuses Microsoft documents, with the meaning, usual cause and first check for each.
Codes in this quick reference
We're still processing your policy (PolicySyncTimeout): policy sync didn't finish in timePurview portal (policy details pane)
We couldn't find this location (FailedToOpenContainer): a location in the policy no longer existsPurview portal (policy details pane)
The location is ambiguous (MultipleInactiveRecipientsError): more than one object matches a locationPurview portal (policy details pane)
The site is locked (SiteInReadOnlyOrNotAccessible): site locked by an admin or an automated processPurview portal (policy details pane)
The location is out of storage (SiteOutOfQuota): not enough storage to apply the policyPurview portal (policy details pane)
We can't process your policy (ActiveDirectorySyncError): policy didn't sync with Microsoft Entra IDPurview portal (policy details pane)
Something went wrong (PolicyNotifyError): unspecified error in the policy notification pipelinePurview portal (policy details pane)
We ran into a problem (InternalError): unspecified policy sync and distribution errorPurview portal (policy details pane)
Figure 1 · Decision treeWhere to read a retention, hold or audit problem first. Start from where the problem shows up. Policy status is read in the details pane and with -DistributionDetail; holds and audit settings in Exchange Online PowerShell.
Policy status shows in the Status section of a retention or label policy under Data Lifecycle Management or Records Management. Select the policy name, not its checkbox, or the details pane won't open.
Distribution details come from Security & Compliance PowerShell. Act on DistributionResults only when DistributionStatus reports errors; warnings can be ignored. Microsoft doesn't support policies that keep errors, so fix every one.
Holds are mailbox and organization properties in Exchange Online PowerShell.
Audit settings must be read in Exchange Online PowerShell.
PowerShell
Connect-IPPSSession
Get-RetentionCompliancePolicy -Identity "<policy>" -DistributionDetail | Format-List DistributionStatus
Get-RetentionCompliancePolicy -Identity "<policy>" -DistributionDetail |
Select-Object -ExpandProperty DistributionResults
# Teams private channels, Viva Engage, and the newer Teams chats and Copilot locations
Get-AppRetentionCompliancePolicy -Identity "<policy>" -DistributionDetail |
Select-Object -ExpandProperty DistributionResults
These appear in a policy's Status section. Retry means selecting Retry in the details pane or running Set-RetentionCompliancePolicy -Identity "<policy>" -RetryDistribution.
Code or message
Meaning
Usual cause
First check
We're still processing your policy PolicySyncTimeout
Policy sync timed out
Service-side sync delay
Retry
We couldn't find this location FailedToOpenContainer
A location in the policy doesn't exist
Site, mailbox or group deleted after it was added
Remove the location (required in the next update), then retry
The location is ambiguous MultipleInactiveRecipientsError
More than one object matches a location
Duplicate matches for one location
Remove the duplicate, then retry
The site is locked SiteInReadOnlyOrNotAccessible
The policy can't update the site
Admin lock, or a temporary lock during an automated process
Unlock the site, then retry
The location is out of storage SiteOutOfQuota
Not enough storage to apply the policy
Site at its quota
Raise the quota or delete items, then retry
We can't process your policy ActiveDirectorySyncError
Policy didn't sync with Microsoft Entra ID
Service-side sync failure
Retry
Something went wrong PolicyNotifyError
Error in the notification pipeline
Unspecified, service-side
Retry
We ran into a problem InternalError
Unspecified sync or distribution error
Service-side
Retry; open a support case if it persists
Settings not found
The retention policy has no rules
Policy saved without a rule
Add one with New-RetentionComplianceRule or New-AppRetentionComplianceRule
You can't apply a hold here RecipientTypeNotAllowed
A location was rejected when added (portal, or PowerShell)
Read these in Exchange Online PowerShell with Get-Mailbox <user> | Format-List LitigationHoldEnabled, InPlaceHolds, *HoldApplied* and Get-OrganizationConfig | Select-Object -ExpandProperty InPlaceHolds. Look a GUID up without its prefix and suffix.
Code or message
Meaning
Usual cause
First check
LitigationHoldEnabled : True
Mailbox on Litigation Hold
Legal preservation of a person
Confirm with legal before removing; a delay hold follows
UniH<GUID>
eDiscovery hold
Hold in an eDiscovery case
Get-CaseHoldPolicy <GUID>, then Get-ComplianceCase with its CaseId
mbx<GUID> or skp<GUID> on the mailbox
Retention policy that targets this mailbox (skp: Skype for Business)
Policies: rerun the distribution commands above. DistributionStatus should read Success and the details pane should show no error; see policy distribution errors for the full workflow.
Coverage:Policy lookup for a test user, group or site lists exactly the policies you expect.
Holds:Get-Mailbox shows only the holds you intend. For history, run Export-MailboxDiagnosticLogs <user> -ComponentName HoldTracking and convert the MailboxLog from JSON.
Audit: perform a test action and find it in a new search a couple of hours later. Search-UnifiedAuditLog -Operations Set-AdminAuditLogConfig shows who last changed the auditing status; more in searching the audit log.
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
Intune Subject Matter Expert in Cairo, Egypt, 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.
Why Teams messages or SharePoint and OneDrive files don't follow your Purview retention policy: wrong locations, timer jobs, holds, distribution and site prerequisites, and how to prove it.
Build Purview adaptive scopes for users, groups and sites with OPATH and KQL, validate them in PowerShell, plan for the five-day population and fix scopes that stay empty.
How retention policies and holds fill the Preservation Hold library, how to measure it per site, what admins can't delete, and the safe ways to scope retention and reclaim storage.