The six fates
| Fate | Who triggers | Visible copy | Compliance copy |
|---|---|---|---|
| Sent | User | Rendered everywhere | Written within minutes |
| Edited | Author (policy-permitting) | Latest version only, "Edited" tag | ALL versions retained |
| User-deleted | Author ("Delete") | Tombstone/removed | Untouched |
| Admin-deleted | Admin/moderation | Removed for everyone | Untouched (still discoverable) |
| Retention-expired | Retention policy | Purged after pipeline lag | Purged (this is the real deletion) |
| Held | Litigation/eDiscovery hold | May be user-deleted from view | Frozen regardless of everything above |
Read the table's punchline: users can only ever affect the visible copy. The compliance copy answers to exactly two masters — retention policy and holds. When someone asks "is it really gone?", the answer is a Purview question, not a Teams one.
Policy switches that shape the lifecycle
TeamsMessagingPolicy:AllowUserEditMessage,AllowUserDeleteMessage,AllowOwnerDeleteMessage(channel moderation) — turning delete off doesn't protect records (compliance copy already does); it protects conversation integrity.- Retention for Teams is its own policy family (chat vs channel messages as separate locations) with a known floor: even "delete after 1 day" takes effect only after the processing pipeline's multi-day latency. Teams retention ≠ instant purge, ever.
- Holds trump everything — including shorter retention. Release the hold and the backlog purge catches up.
The interview answers (because these exact questions recur)
- Can IT recover a message a user deleted? From the client, no; via eDiscovery, yes (until retention purges it).
- Can a user beat eDiscovery by editing? No — versions are retained.
- If retention says delete at 30 days, when does it vanish? Visible copy: some days after day 30 (pipeline). Compliance copy: same window. "Day 30 exactly" appears in no SLA.
- Do reactions/read receipts persist? Reactions are message mutations (retained); read receipts are ephemeral signals, not records.
What to watch (proofs)
- Version retention: edit a test message, eDiscovery-export it — both versions in the export, only one in the client.
- Delete vs gone: user-delete then eDiscovery search (hit) → apply short retention on a test scope, wait out the pipeline, search again (no hit). You now hold empirical latency numbers for YOUR tenant — write them down.
- Policy truth:
Get-CsTeamsMessagingPolicy | fl AllowUserEdit*,AllowUserDelete*, AllowOwnerDeleteMessageacross all instances (serv365 scans these; the transcription precedent applies — check every instance, not Global). - Hold supremacy: item on hold + expired retention → still discoverable; the hold report in Purview names what's frozen and why.