Fix Teams Retention Policy Does Not Delete Messages for a Guest Conversation
🔍 WiseChecker

Fix Teams Retention Policy Does Not Delete Messages for a Guest Conversation

When you configure a Microsoft Teams retention policy to delete messages after a set number of days, you expect all chats to be purged automatically. But for conversations that involve guest users, the cleanup often never happens. The messages stay in the chat history, and your compliance team is left wondering why the policy is not working. This article explains why guest conversations are excluded from standard retention policies and shows you how to fix it using a separate policy assignment.

Retention policies in Teams rely on the location of the conversation and the user type. Guest users are stored in your Azure AD as external identities, and their conversations are treated differently from internal chats. The fix involves creating a dedicated retention policy that targets guest users and assigning it at the user level in the Microsoft Purview compliance portal.

Key Takeaways: Fixing Retention for Guest Conversations

  • Microsoft Purview compliance portal > Retention policies: Create a policy that specifically targets guest users instead of relying on the default Teams policy.
  • Teams admin center > Users > Guest users: Confirm the guest account exists and has the correct external identity status before assigning a retention policy.
  • Retention policy assignment at the user level: Overrides the organization-wide policy and applies deletion rules to guest conversations.

ADVERTISEMENT

Why Teams Retention Policy Ignores Guest Conversations

When you create a retention policy in the Microsoft Purview compliance portal, you choose a location such as Teams channel messages or Teams chats. For Teams chats, the policy applies to 1:1 and group chats that are owned by users in your organization. Guest users are not considered owners of these conversations, even if they participate actively.

The root cause is that retention policies evaluate the user who initiated the chat. If the guest started the conversation, the chat is stored under the guest’s identity. Your organization-wide policy does not cover that identity because the guest is an external user. Even if the guest is added to your Azure AD, the policy scope still excludes them unless you explicitly assign a policy.

Additionally, Teams applies retention settings at the mailbox level for chat messages. Guest users have a mail user object in Exchange Online, but that object is not automatically included in the Teams chat retention scope. The result is that messages in guest conversations remain intact after the retention period expires.

How Teams Stores Guest Conversations

Every Teams chat message is stored in the Exchange Online mailbox of each participant. For internal users, the message appears in a hidden folder in their mailbox. For guests, the message is stored in the guest’s mail user object. Retention policies in Teams are linked to the mailbox of the user who owns the conversation. If the owner is a guest, the policy does not apply.

Steps to Apply a Retention Policy to Guest Conversations

You must create a separate retention policy that explicitly includes guest users. Use the Microsoft Purview compliance portal to create the policy and assign it to guest mailboxes. Follow these steps exactly.

  1. Open the Microsoft Purview compliance portal
    Go to compliance.microsoft.com and sign in with an account that has the Compliance Administrator role. If you do not have this role, request it from your global admin.
  2. Create a new retention policy
    In the left navigation, select Data lifecycle management, then Retention policies. Click New retention policy. Give the policy a name such as Guest Chat Retention 30 Days.
  3. Choose the location as Teams chats
    In the location selection screen, enable Teams channel messages and Teams chats. Do not enable Exchange email unless you also want to retain guest emails. Click Next.
  4. Define the retention period
    Select Retain items for a specific period and enter the number of days, for example 30. Then choose Delete items automatically after the retention period. Click Next.
  5. Select the guest users
    On the Choose locations screen, click Edit next to Teams chats. In the user picker, search for the guest user by their email address. Select the guest user and click Add. Repeat for each guest you want to cover. Click Done.
  6. Finish the policy creation
    Review the policy settings and click Submit. The policy will be applied to the selected guest users within 24 hours.

After the policy is applied, the guest’s chat messages will be deleted after the retention period. The deletion process runs in the background and may take up to 7 days after the period ends. Check the audit logs in the compliance portal to confirm the deletion.

ADVERTISEMENT

If Teams Still Has Issues After the Main Fix

Guest Messages Are Not Deleted After 30 Days

If the messages remain after the retention period, check whether the policy is assigned correctly. Go to Data lifecycle management > Retention policies, open your policy, and verify that the guest user appears in the Teams chats location. If not, edit the policy and add the guest again.

Also confirm that the guest account is still active. If the guest was removed from Azure AD, the policy cannot process the deletion. Re-add the guest and wait for the next retention cycle.

Retention Policy Applies to Internal Chats but Not Guest Chats

This is expected because the organization-wide policy does not include guest identities. You must create a separate policy as described above. Do not modify the existing policy to add guests, because that can affect internal chats unexpectedly. Keep the guest policy separate.

Guest User Cannot Be Found in the User Picker

The user picker in the retention policy only shows users who have a mailbox in Exchange Online. If the guest does not have a mail user object, you must first create one. Go to Exchange admin center > Recipients > Mailboxes, add the guest as a mail user, and then retry the policy assignment.

Item Organization-Wide Policy Guest-Specific Policy
Scope Internal users only Explicitly selected guest users
How to create Default policy in compliance portal New policy with guest user selection
Deletion applies to Chats owned by internal users Chats owned by guest users
Time to take effect Within 24 hours Within 24 hours
Audit logging Yes Yes

For most organizations, the guest-specific policy is the only reliable way to delete messages from guest conversations. Test the policy with a single guest before rolling it out to all external participants.

You can now apply a retention policy that deletes guest conversation messages on schedule. Create the guest-specific policy in the compliance portal and verify the deletion in the audit logs. For advanced control, use PowerShell with the Set-RetentionCompliancePolicy cmdlet to automate the assignment across many guests.

ADVERTISEMENT