Most Microsoft Purview DLP deployments fail not because the technology is wrong, but because policies are deployed in block mode before anyone understands where sensitive data actually lives. The result is policy tip fatigue — users reflexively click "Override" without reading the warning, and shadow IT grows as people route around controls. This guide walks you through the correct phased approach: Identify first, Classify second, Monitor before you enforce, then Restrict only what you fully understand. It also covers the registry keys, diagnostic files, and endpoint agent state you need to verify when DLP is not working as expected.
The problem: when DLP creates more risk than it removes
Picture this. Your organisation deploys Microsoft Purview Data Loss Prevention across Exchange Online, SharePoint Online, OneDrive for Business, and Microsoft Teams. The compliance team marks the project complete. Twelve weeks later, the security operations team notices something odd in the DLP activity reports: the override rate on policy tips has climbed to 84 percent. Users are seeing a policy tip, reading the first word, and clicking Override before they finish the sentence.
This is not a hypothetical. It is the most common failure mode in DLP deployments. The alerts are firing. The policies are active. But sensitive data is still leaving the organisation — now through personal Gmail, USB drives, and Teams calls with external guests — because users have learned that DLP is noise, not signal.
There is a second failure mode that happens earlier in the journey. An organisation creates a DLP policy that blocks any email containing the word "confidential." A meeting agenda marked "Confidential — Internal Only" in the header now cannot be sent to a partner firm. The helpdesk ticket queue fills with complaints. The IT team disables the policy within two days. DLP is now effectively off, but the compliance report still shows it as active.
The underlying issue is that most DLP programmes skip the most important stage: understanding what they are protecting before protecting it. Data Loss Prevention is not a policy toggle. It is a security programme that evolves through six distinct maturity stages, each building on the one before it.
Why it happens: pattern matching, generic tips, and the enforcement trap
Microsoft Purview DLP ships with over 200 built-in sensitive information types (SITs): credit card numbers, national insurance numbers, passport patterns, IBAN formats, SWIFT codes. These work by matching regular expressions and keyword proximity. A 16-digit number near the word "card" is classified as a credit card number — even if it is an internal product code, a customer order reference, or a phone extension followed by a ticket number.
The pattern-matching approach is deliberately broad by design. Microsoft calibrates it to catch genuine data at the cost of false positives. The problem emerges when organisations deploy these SITs at confidence level 65 or below — the low confidence threshold — which is the default for many policies created through the Quick Policies wizard. At 65% confidence, the false positive rate on typical enterprise data can exceed 90% for certain SIT types.
The second failure is the policy tip itself. A user in Finance who sends a budget spreadsheet to their own home email gets a yellow banner: "This message might contain sensitive information. Please review our data policy before sending." This same banner appears every time they send anything containing a number with more than 10 digits. After the 40th occurrence in a month, the user stops reading the banner entirely. The click becomes muscle memory. DLP has trained users to bypass it.
The third failure — the one that kills the programme from the inside — is deploying in block mode before running in audit mode. Block mode creates user-facing friction immediately. When that friction interrupts a business-critical workflow, the pressure on the IT team to create an exception is enormous. Exceptions accumulate. Within six months, the exception list is longer than the policy itself. The programme is effectively dead.
How to verify: registry state, agent health, and Activity Explorer
Before tuning any policy, you need to confirm that the DLP stack is actually functioning at the endpoint level. Cloud DLP (Exchange Online, SharePoint, Teams) is policy-driven from the Purview compliance portal and requires no local agent. Endpoint DLP — which enforces controls directly on Windows 10/11 devices for file copy, USB transfer, print, clipboard, and browser upload actions — requires the Microsoft Defender for Endpoint (MDE) SENSE agent to be onboarded and running.
Check Endpoint DLP agent state via registry
The MDE SENSE agent status is written to the registry immediately after onboarding. Open Registry Editor (regedit.exe) and navigate to the following location to confirm the device is in the correct state for Endpoint DLP to function:
If SenseIsRunning is 0 or the key does not exist, Endpoint DLP policies assigned in the Purview compliance portal will not enforce on this device — and no error will be shown in the portal. The device will appear in the Endpoint DLP policy scope, but no file activity events will flow.
Verify sensitivity label and MIP client state
If your DLP policies use sensitivity labels as conditions (the correct approach — matching on a label is far more precise than matching on a pattern), you need to confirm the MIP labeling client is connected and syncing labels from the compliance portal. Check these registry paths:
| Registry path | Value name (type) | What it means |
|---|---|---|
HKCU\Software\Microsoft\MSIP | IsLabelerEnabled (REG_DWORD) | 0x1 = label sync active. 0x0 or missing = built-in labeling disabled. Check if a GPO is suppressing the labeling client. |
HKCU\Software\Microsoft\Office\16.0\Common\Security\Labels | UseOfficeForLabelling (REG_DWORD) | 0x1 = using built-in Office labels (recommended). 0x0 = using the legacy Azure Information Protection unified labeling client add-in. |
HKCU\Software\Microsoft\Office\16.0\Common\Security\Labels | Mandatory (REG_DWORD) | 0x1 = users must apply a sensitivity label before saving or sending. 0x0 or missing = labeling is optional. Mandatory labeling is required for label-based DLP to be reliable. |
HKCU\Software\Microsoft\Office\16.0\Common\DlpCacheTimestamp | (Default) (REG_SZ) | Timestamp of the last successful DLP policy download from the Purview compliance service. If this is more than 24 hours old, Office has not received policy updates — check network connectivity to *.protection.outlook.com. |
Diagnostic files: where the DLP stack stores its state locally
When troubleshooting a DLP enforcement failure, these file paths contain the information you need before escalating to a Microsoft support case:
| Path | What it contains | Use when |
|---|---|---|
%LocalAppData%\Microsoft\MSIP\ | MIP label cache, user label preferences, authentication tokens for label sync | Labels are not appearing in Office apps or are stale |
%LocalAppData%\Microsoft\MSIP\mip\ | MIP SDK policy cache — downloaded label taxonomy and DLP policy conditions tied to labels | Labels show in Office but DLP conditions based on labels are not firing |
%LocalAppData%\Microsoft\Office\16.0\OfficeFileCache\ | Office file cache used by the DLP scanning engine when evaluating SharePoint and OneDrive files for policy matches | SharePoint DLP alerts are missing for files you know were opened and saved locally |
%ProgramData%\Microsoft\Windows Defender Advanced Threat Protection\ | MDE SENSE agent configuration, onboarding blob, device certificate | SenseIsRunning = 0 or Endpoint DLP events are not appearing in Activity Explorer |
%SystemRoot%\System32\drivers\WdFilter.sys | Windows Defender filter driver — intercepts file system operations for Endpoint DLP enforcement (USB copy, print, clipboard) | Endpoint DLP file activity controls are not enforcing on this device despite correct policy assignment |
Check Activity Explorer for override patterns
In the Microsoft Purview compliance portal, navigate to Data loss prevention › Activity explorer. Set the date range to the last 30 days and filter by activity type DLP rule matched. Look for two specific signals: the override rate per policy (any policy above 60% is a fatigued policy), and the top users by override count (these are the users who need targeted education, not broader restrictions).
The fix: the six-stage DLP maturity model
Effective DLP is built in stages. Each stage is a prerequisite for the next. Jumping directly to block mode without completing the earlier stages is how programmes fail.
Stage 1: Identify — use Content Explorer before you write a single policy
Content Explorer in the Purview compliance portal scans your Microsoft 365 environment and shows you exactly where sensitive information types have been detected — by SharePoint site, OneDrive account, Exchange mailbox, and Teams channel. You do not need to create any policies to run Content Explorer. It is a read-only audit tool.
Run Content Explorer for at least two weeks before creating any DLP policies. The goal is to understand your data landscape: which departments handle the highest volumes of sensitive data, which file types carry the most risk, and which external sharing patterns already exist. You cannot protect what you do not understand.
Stage 2: Classify — sensitivity labels are the foundation, not an optional extra
A DLP policy that matches on patterns (a 16-digit number, a keyword, a regular expression) will always produce false positives. A DLP policy that matches on a sensitivity label can be calibrated to near-zero false positives — because a label is applied by a human (or an auto-labeling policy with very high confidence) after the content has been evaluated in context.
The correct architecture is: sensitivity labels protect the data at rest (with optional encryption), and DLP policies enforce the movement controls based on those labels. For example: any document labelled "Highly Confidential" cannot be shared with an external domain — full stop, no override allowed. The DLP policy is simple and precise because it does not need to understand what is inside the document; it only needs to read the label.
For data that cannot be labelled by users — employee records, customer account numbers, financial identifiers that follow no predictable pattern — use Exact Data Match (EDM). EDM hashes your actual sensitive data rows (a CSV of real account numbers, for example) and instructs the DLP engine to match only against those exact values. A 16-digit number that is not in your EDM data set will never trigger an EDM-based policy. False positive rate: effectively zero.
Stage 3: Monitor — run in test mode for at least 30 days
Every new DLP policy must start in Test mode without policy tips. In this mode, the Purview engine evaluates all content against the policy and logs every match — but takes no action. Users see nothing. No policy tips appear. No emails are blocked.
Run each policy in test mode for a minimum of 30 days before advancing to the next stage. Use Activity Explorer during this period to analyse the match results. For each SIT or label condition in the policy, record: total match count, top document types generating matches, top users generating matches, and the departments involved. This data is the foundation of Stage 4.
Stage 4: Educate — targeted policy tips with business context
When you do activate policy tips, they must be specific and actionable — not generic. The difference between a policy tip that users read and one they bypass is the presence of a business justification. A tip that says "This document appears to contain financial data. If you are sharing for an approved purpose, select the appropriate exception below" is read. A tip that says "This message might contain sensitive information" is clicked through on autopilot.
Customise policy tip text in the Purview compliance portal. Each DLP rule can have its own tip text. Write the tip from the user's perspective: tell them what was detected, why it matters, and what their options are. Provide a self-service override option with a business justification dropdown (standard business need, partner sharing agreement, customer request, approved by manager) that is logged against their identity for audit purposes. This turns every override into a documented decision rather than an anonymous click.
Stage 5: Restrict — enforce only what you have fully mapped
Move policies to enforcement mode only after completing Stages 1 through 4 for that specific policy. Do not enforce globally in a single change. Start with the highest-risk vector for that data type — for financial data, that is usually external email. After two weeks with no false-positive escalations, extend enforcement to USB transfer on endpoints. Then browser upload. Then Teams external sharing. Each extension follows the same validate-then-enforce pattern.
For the highest-sensitivity data categories (data classified as "Highly Confidential" or matched by EDM), enforce without override option. These are the cases where the business has already decided that the risk of data leaving the organisation outweighs any convenience of allowing exceptions. There should be no more than three to five such categories in a mature DLP programme — everything else should allow override with justification.
Stage 6: Optimise — continuous tuning based on production data
A DLP programme that is not regularly tuned degrades. New file types emerge. Business processes change. Regulatory requirements evolve. Set a monthly review cadence for the following metrics in Activity Explorer: total policy matches, override rate per policy, false positive rate (tickets raised by users challenging a DLP block), and unmatched sensitive data found in Content Explorer that no policy currently covers.
Any policy with an override rate above 30% needs immediate investigation. Either the SIT confidence threshold is too low, the policy scope is too broad, the policy tip is too generic, or the business process has changed and the policy no longer fits. Fix the root cause — do not simply add another exception to the exception list.
Proof it worked: what a healthy DLP posture looks like
A healthy, mature DLP programme has specific measurable indicators. After completing all six stages, you should be able to demonstrate the following in the Purview compliance portal:
| Indicator | Healthy state | Action if wrong |
|---|---|---|
| Policy tip override rate | Below 20% across all policies | Above 20% = tip text is too generic or confidence threshold too low. Review the top overriding users and their business context. |
| Alert-to-incident ratio | Below 5:1 (5 alerts produce 1 confirmed incident) | Above 10:1 = too many false positives. Raise the SIT confidence threshold or narrow the policy scope. |
| EDM data freshness | Hash upload completed within 7 days | Stale EDM data means new sensitive records are not being matched. Automate the hash upload via a scheduled task. |
| Endpoint DLP coverage | SenseIsRunning = 1 on 95%+ of managed Windows endpoints | Devices without SENSE running are invisible to Endpoint DLP. Check MDE onboarding status in Microsoft Defender portal. |
| Sensitivity label adoption | 90%+ of files in SharePoint and OneDrive carry a label | Below 90% = label-based DLP conditions will miss unlabelled files. Enable mandatory labeling via the registry key and auto-labeling policies. |
The most important indicator is not the one on the dashboard. It is the absence of shadow IT escalations. When users are not finding workarounds — when they are not forwarding documents to personal Gmail to bypass the policy, not copying files to USB drives because the organisation one is blocked and no approved alternative was provided — the DLP programme is working. Users have accepted the controls because the controls do not interrupt legitimate work.
That acceptance is built in Stages 3 and 4, not in Stages 5 and 6. Education and visibility before restriction is what separates a DLP programme that works from one that is technically deployed but practically ineffective. The policy tip the user reads and understands in month two is the one they will not override in month six.
References
- Microsoft Learn: Learn about data loss prevention — Official overview of DLP policy concepts, sensitive information types, and enforcement modes
- Microsoft Learn: Learn about Endpoint data loss prevention — SENSE agent requirements, supported activities, and Endpoint DLP configuration reference
- Microsoft Learn: Exact data match based sensitive information types — Complete EDM schema design, hash upload process, and policy authoring guide
- Microsoft Learn: Get started with Microsoft Purview information protection — Sensitivity label setup, mandatory labeling configuration, and auto-labeling policy guide
- Microsoft Learn: Adaptive Protection in Microsoft Purview — Integrating Insider Risk Management risk signals with DLP policy enforcement
- Microsoft Tech Community: Security, Compliance, and Identity blog — Engineering team updates on new Purview DLP capabilities and feature releases
Microsoft MVP community deep-dives
| Author | Post | What it adds |
|---|---|---|
| Joanne Klein (MVP) | DLP Policy Tip Configuration in Microsoft Purview | Detailed walkthrough of policy tip customisation options, override justification categories, and how tip display differs between Outlook Web vs Outlook desktop |
| Alex Fields (MVP) | Microsoft Purview DLP Best Practices | Phased rollout guidance from production deployments, focusing on the test-to-enforce transition and the most common policy exceptions that accumulate over time |