Teams call records left chat retention policies in late April 2026: the replacement policy is PowerShell only
Since late April 2026 a new Teams call data record is covered only by a retention policy for the Teams call logs location, which exists only in PowerShell and reaches nothing created before it went active. The old chat policy stays green. This note gives the read-only check and the boundary of the gap.
Since late April 2026, a newly created Teams call data record is governed by one thing only, a retention policy for the Teams call logs location. That policy can be created only in PowerShell, it is read only in the Microsoft Purview portal, and it covers nothing created before it went active. The chat policy that used to cover them stays enabled and keeps deleting chat messages, and no page read describes any error or warning being raised when it stops covering call data records.
Last verified: 2026-08-20.
What changed
Microsoft's Create and configure retention policies page, read on 2026-08-20, states it in one sentence: "Going forward, new CDRs are supported only when you create a retention policy for Teams call logs." Records already inside a chat policy stay there: "CDRs included in previous Teams chat retention policies continue to be managed by those same policies." The exposure starts at the changeover.
Three further sentences on that page each widen the interval. On creation: "This separate retention policy for call logs can be created and modified only by using PowerShell." On scope: "The policy applies only to new call logs that are created after the policy is configured and active." On timing: "When you create and submit a retention policy, it can take up to seven days for the retention policy to be applied". The first two sit under a subsection headed Retention policy for Teams call logs, and the third under a separate section headed How long it takes for retention policies to take effect. What sits under the subsection headed Known configuration issues for Teams retention policies is the changeover itself, which is not where a retention schedule gets reviewed.
Who is affected
Not every tenant. One whose chat policy carried no delete action has no schedule that stopped running. The exposed tenant is the one whose chat policy was delete only, or retain and then delete: it was deleting call data records on a cadence until the changeover and has not been since.
The direction of the failure is where a careful reader goes wrong. Microsoft's Learn about retention for Microsoft Teams page states the default without qualification: "By default, Teams call logs are retained indefinitely." The same page describes a workload where "deletion is the only applicable action". The uncovered band is not where evidence went missing, it is where deletion stopped happening, which puts the finding under storage limitation rather than discoverability.
flowchart TD
accTitle: Where one Teams call data record lands, before and after the late April 2026 changeover
accDescr: Before the changeover the chats policy claimed the record and deleted it on schedule. After it, nothing claims a new record until a call logs policy exists, and the interval up to the day that policy distributes is permanently uncovered, holding records that are retained indefinitely rather than lost.
subgraph S1 [Before late April 2026]
A[Record created] --> B[Teams chats policy]
B --> C[Deletion runs on that schedule]
end
subgraph S2 [Uncovered interval, no backfill]
D[Record created] --> E[No policy claims it]
E --> F[Retained indefinitely, deletion stopped]
G[Policy submitted with PowerShell] --> H[Up to seven days to distribute]
end
subgraph S3 [Once the call logs policy is active]
I[Record created] --> J[Call logs policy, PowerShell only]
J --> K[Deletion runs on that schedule]
end
B --> M[Older records keep the old policy]
H --> JWhere the vendor pages disagree
Every page below was read on 2026-08-20.
| Question | One page | Another page | Plan against |
|---|---|---|---|
| Is Teams call logs a retention location | Purview lists it among the supported locations | The Teams-owned page still says "Teams supports retention policies for chat and channel messages", with call log absent from it | Purview. The Teams page had not caught up |
| Can it be switched on in the portal wizard | The location list near the top of the Purview page has it | The static scope step lower down on the same page offers six choices without it | The static step. The page reconciles the two itself, stating that call logs are supported from late April 2026 only when the policy is created with PowerShell |
| Which cmdlet family covers it | The cmdlets page ends its newer-locations list "and for Teams call logs" | The cmdlet reference names Teams chats, channels and Viva Engage, call logs absent | The cmdlets page, which matches the primary source |
| How long a record is kept with no policy | Purview says call logs are retained indefinitely | The PSTN usage report sets per-country periods for detailed call records, 365 days for Calling Plans and 150 for Direct Routing under All other countries | Both. Different stores, and neither page says so |
Tenant check
Two reads answer one question: does a policy carrying the Teams call logs location exist in this tenant, and from when. Microsoft prescribes the value User:MicrosoftTeamsCallLog for that location.
# Security and Compliance PowerShell. Every command below is a read.
Connect-IPPSSession -UserPrincipalName admin@contoso.onmicrosoft.com
# 1. List every app retention compliance policy.
Get-AppRetentionCompliancePolicy | Format-Table Name,GUID
# 2. Read one policy in full, looking for User:MicrosoftTeamsCallLog.
# Format-List * is deliberate. The reference documents no property
# name carrying the location, so read the whole object.
Get-AppRetentionCompliancePolicy -Identity "PolicyName" | Format-List *
# 3. Optional, still a read. Distribution status.
Get-AppRetentionCompliancePolicy -Identity "PolicyName" -DistributionDetail | Format-List Name,DistributionResults
Disconnect-ExchangeOnline -Confirm:$false
Where no policy carries that value, none exists, and every record created since the changeover sits under the indefinite default. Where one does, the date it became active is the boundary, because it covers only call logs created after that point. The same listing shows whether the old chat policy is still enabled.
The data lifecycle management guidance names the least-privileged role for this: "For a read-only role, use View-Only Retention Management." Granting its read-write counterpart to run a read is a finding of its own.
Limitations
The check proves a policy object exists and what location value it carries. It does not prove distribution succeeded, which the third command reads, and it does not prove one call record was ever deleted.
Absence is not by itself a compliance failure. The default is indefinite retention and deletion is the only action available here, so a tenant with no policy is over-retaining. Whether that matters depends on the organisation's own schedule and its basis for keeping telephony metadata.
Microsoft publishes no day for the changeover, only the phrase late April 2026, so this note states no day count. Out of scope: the PSTN and Direct Routing records in the Teams admin center, and meeting recordings and transcripts, which the primary source assigns to OneDrive, SharePoint or Microsoft 365 Group locations. No page read covered the sovereign clouds or a licence specific to call logs.
The PowerShell-only constraint was on the primary page on 2026-08-20. Re-read it before planning a change around it.
Act now
Decision: Act now, and the action is the read rather than the write. The default has been live since late April 2026 and each further day widens an interval no later policy can cover, so there is nothing to schedule and no signal to wait for. The write that follows is a separate decision and usually belongs in the next change window, because the duration has to match a published schedule.
Changes that pass without an error are the ones worth tracking on a schedule, which is what the Microsoft 365 management service is for.
Sources and further reading
More from Ops Log
Microsoft 365 E3 gained Defender Plan 1 in July and impersonation protection is still off by default
Microsoft 365 E3 has included Defender for Office 365 Plan 1 since 1 July 2026, but user and domain impersonation protection stays applied to nobody until an administrator configures it. This runbook gives the read-only check that settles whether anything in the tenant is actually enforcing it.
An empty Baseline scopes settings page proves nothing about the enforcement rollout
A Conditional Access policy targeting All resources with a resource exclusion now enforces on sign-ins requesting only baseline scopes, and the Baseline scopes settings page renders empty whether or not the rollout reached the tenant. Inventory the policy shape, the only part a read-only call can measure.
Anthropic in Excel and PowerPoint is a separate setting, on by default for EU tenants created after 25 March 2026
Copilot in Excel and PowerPoint has its own Anthropic setting, a different object from the global Anthropic subprocessor control, and it defaults to on for EU, EFTA and UK tenants created after 25 March 2026. Whether anything actually leaves the EU Data Boundary turns on the second control, so read the tenant creation date and then read both.