Fix Teams Archive Policy Does Not Run in a Multi-Geo Tenant
🔍 WiseChecker

Fix Teams Archive Policy Does Not Run in a Multi-Geo Tenant

When your organization uses a multi-geo Microsoft 365 tenant, the Teams archive policy may not run as expected. Users see chats and channels that never move to archived state, or the policy appears to have no effect. This happens because the archive policy is tied to the user’s preferred data location, and in a multi-geo setup, that location can differ from the policy assignment. This article explains why the policy fails and provides step-by-step fixes to make archiving work reliably across all geo locations.

The archive policy in Teams is a messaging policy that controls when chat history is archived. In a multi-geo tenant, each user has a preferred data location that determines where their data is stored. If the policy is not applied at the correct geo, the archive job never triggers. We will show you how to verify policy assignments, check the geo of each user, and use PowerShell to enforce the policy correctly.

Key Takeaways: Fixing Teams Archive Policy in a Multi-Geo Tenant

  • Teams admin center > Messaging policies > Archive: Shows the archive settings that control when chats are archived, but the policy must be assigned to the correct geo.
  • Get-MailUser -ResultSize Unlimited | Select PreferredDataLocation: Lists each user’s preferred data location to identify which geo is missing the policy.
  • Set-MailUser -PreferredDataLocation: Changes a user’s preferred data location to match the geo where the archive policy is assigned.
  • New-CsOnlineSession and Get-CsUserPolicyAssignment: PowerShell cmdlets that verify and update policy assignments per user in a multi-geo tenant.

ADVERTISEMENT

Why the Teams Archive Policy Does Not Run in a Multi-Geo Tenant

In a multi-geo Microsoft 365 tenant, user data is stored in a specific geo location based on the user’s preferred data location. The Teams archive policy is a messaging policy that controls when chat history is archived. Each policy is associated with a geo location. When you assign the archive policy to a user, the assignment must be made in the same geo as the user’s preferred data location. If the policy is assigned in a different geo, the archive job does not run for that user.

The archive policy runs as a background process that checks each user’s chat history against the policy settings. This process runs in the geo where the user’s data is stored. If the policy assignment is not present in that geo, the process finds no policy and skips the user. This is not a permissions issue or a licensing issue. It is a geo mismatch problem.

How Multi-Geo Affects Policy Assignment

Each user has a preferred data location that is set at the user level. This setting determines where Exchange Online, SharePoint, and Teams data are stored. When you create a messaging policy in the Teams admin center, the policy is stored in the central location, but the assignment to a user is propagated only to the geo where the user’s data resides. If the user’s preferred data location is changed after the policy is assigned, the assignment may not follow the user.

For example, a user is assigned the archive policy while their preferred data location is Europe. Later, the admin changes the preferred data location to Asia. The policy assignment remains in Europe, but the user’s data is now in Asia. The archive job in Asia does not see the policy, so archiving stops.

Steps to Diagnose and Fix the Archive Policy in a Multi-Geo Tenant

Follow these steps to identify the geo mismatch and correct the policy assignment. You will need global admin or Teams admin permissions and the Teams PowerShell module.

Step 1: Verify the Archive Policy Settings

  1. Open the Teams admin center
    Go to Teams admin center > Messaging policies. Select the policy that should archive chats. Check the Archive setting. It must be set to Enabled. Note the policy name and the archive duration.
  2. Confirm the policy is assigned
    In the same policy page, look at the Managed by section. Ensure the policy is assigned to the users or groups you expect. If the policy is not assigned to any user, the archive will not run.
  3. Check the policy priority
    If multiple policies are assigned to a user, the one with the highest priority wins. In the policy list, the topmost policy has the highest priority. Make sure the archive policy is not overridden by another policy that has archive disabled.

Step 2: Identify the Preferred Data Location for Each User

  1. Connect to Exchange Online PowerShell
    Open PowerShell and run Connect-ExchangeOnline. Sign in with your admin account.
  2. List users and their preferred data location
    Run the command Get-MailUser -ResultSize Unlimited | Select DisplayName, UserPrincipalName, PreferredDataLocation | Export-Csv C:\temp\users-geo.csv. Open the CSV file to see which geo each user is assigned to.
  3. Compare with the policy assignment
    For each user that should have the archive policy, note the preferred data location. Then check the policy assignment for that user using the Teams admin center or PowerShell.

Step 3: Update the Policy Assignment for the Correct Geo

  1. Connect to Teams PowerShell
    Run Connect-MicrosoftTeams in a new PowerShell window. This module uses the Teams admin center APIs.
  2. Check the current policy assignment for a user
    Run Get-CsUserPolicyAssignment -Identity user@contoso.com -PolicyType MessagingPolicy. This shows the policy name and the geo location where the assignment is stored.
  3. Remove the assignment from the wrong geo
    If the assignment is in a geo that does not match the user’s preferred data location, remove it. Run Remove-CsUserPolicyAssignment -Identity user@contoso.com -PolicyType MessagingPolicy.
  4. Reassign the policy to the correct geo
    Run Grant-CsUserPolicyAssignment -Identity user@contoso.com -PolicyName "ArchivePolicy" -PolicyType MessagingPolicy. The policy will be assigned to the geo where the user’s data currently resides.
  5. Wait for propagation
    The assignment change takes up to 24 hours to propagate across all geo locations. After that, the archive job will run in the correct geo.

Step 4: Change the User’s Preferred Data Location (If Needed)

  1. Use Exchange Online PowerShell
    If the policy assignment is correct but the user’s data is in the wrong geo, you can change the preferred data location. Run Set-MailUser -Identity user@contoso.com -PreferredDataLocation EUR to move the user’s data to Europe.
  2. Wait for the move to complete
    Changing the preferred data location triggers a data move. This can take several days. After the move, the archive policy will run in the new geo.

ADVERTISEMENT

If Teams Still Does Not Archive After the Fix

Teams Archive Policy Is Enabled but No Chats Are Archived

If the policy is enabled and assigned correctly, but no chats are archived, check the archive duration. The archive policy only archives chats that are older than the specified duration. If you set the duration to 30 days, chats younger than 30 days will not be archived. To test, set the duration to 1 day and wait a day to see if archiving starts.

Archive Policy Works for Some Users but Not Others

This indicates a geo mismatch for the affected users. Repeat Step 2 and Step 3 for each user. You can automate this by running a PowerShell script that loops through all users and checks the preferred data location against the policy assignment.

Policy Assignment Shows in the Admin Center but Not in PowerShell

This can happen when the policy is assigned at the group level. In the Teams admin center, the group assignment shows, but PowerShell only shows direct assignments. To fix, check if the user is a member of the group that has the policy. If the group is in a different geo, the policy may not apply to users in other geos. Move the group to the correct geo or assign the policy directly to the user.

Teams Archive Policy: Direct Assignment vs Group-Based Assignment in a Multi-Geo Tenant

Item Direct Assignment Group-Based Assignment
Geo handling Assignment is stored in the user’s geo Assignment is stored in the group’s geo
Propagation Propagates to the user’s geo only Propagates to all group members in the group’s geo
Risk in multi-geo Low if the user’s geo is correct High if group members span multiple geos
Management More manual work for many users Easier to manage a large set of users
Best for Users with unique geo requirements Users in the same geo

In a multi-geo tenant, direct assignment is more reliable because it follows the user. Group-based assignment can break when group members are in different geos. If you must use group-based assignment, create separate groups for each geo and assign the policy to each group.

After applying these fixes, the archive policy will run correctly in your multi-geo tenant. Verify the policy by checking the audit log for archive actions. Use the Teams admin center > Messaging policies page to monitor the policy status. As an advanced tip, schedule a weekly PowerShell script to compare each user’s preferred data location with the policy assignment and correct any mismatches automatically.

ADVERTISEMENT