PurviewTroubleshooting

Too many Purview DLP false positives: tuning confidence, instance counts and exceptions

Find out which sensitive information type and rule matched, then cut Purview DLP false positives with confidence levels, instance counts, exceptions and better-tested SITs.

A DLP policy that cries wolf trains users to click Override without reading and buries the real incidents in noise. False positives almost always come from a rule that accepts too little evidence: a low confidence level, a single instance, or a sensitive information type that doesn't fit your data. In this post I'll show how to find out exactly what matched, then tighten the rule step by step without losing the detections you need.

Errors this guide fixes

  • Your email conflicts with a policy in your organization.Outlook policy tip+1 more guide
  • Your email message conflicts with a policy in your organization. The message wasn't delivered to all recipients.DLP email notification+1 more guide
  • This item conflicts with a policy in your organization.SharePoint / OneDrive policy tip+1 more guide
  • Access to this item is blocked for everyone except its owner, last modifier, and the primary site admin.SharePoint / OneDrive policy tip+1 more guide
  • This file conflicts with a policy in your organization. Go to the File menu for more information.Word, Excel, PowerPoint (Message Bar)
How this guide is organized: Symptoms → Why it happens → How to fix it → Verify the fix → Prevent it next timeFlow diagram of the article's sections in reading order: 1. Symptoms. 2. Why it happens. 3. How to fix it (6 steps: Find exactly what matched; Raise the confidence level and instance count; Add narrow exceptions; Fix the classifier instead of the rule; Test before you publish; Turn overrides into tuning data). 4. Verify the fix. 5. Prevent it next time. Toolbox: Test-DataClassification, Show Details › Override, FalsePositives, WithJustification, WithoutJustification.1Symptoms2Why it happens3How to fix it4Verify the fix5Prevent it nexttime1Find exactlywhat matched2Raise theconfidence le…3Add narrowexceptions4Fix theclassifier inst…5Test beforeyou publish6Turn overridesinto tuning da…TOOLBOXTest-DataClassificationShow Details › OverrideFalsePositivesWithJustificationWithoutJustificationHow this guide is organized: Symptoms → Why it happens → How to fix it → Verify the fix → Prevent it next timeFlow diagram of the article's sections in reading order: 1. Symptoms. 2. Why it happens. 3. How to fix it (6 steps: Find exactly what matched; Raise the confidence level and instance count; Add narrow exceptions; Fix the classifier instead of the rule; Test before you publish; Turn overrides into tuning data). 4. Verify the fix. 5. Prevent it next time. Toolbox: Test-DataClassification, Show Details › Override, FalsePositives, WithJustification, WithoutJustification.1Symptoms2Why it happens3How to fix it1Find exactly what matched2Raise the confidence level and instance count3Add narrow exceptions4Fix the classifier instead of the rule5Test before you publish6Turn overrides into tuning data4Verify the fix5Prevent it next timeTOOLBOXTest-DataClassificationShow Details › OverrideFalsePositivesWithJustificationWithoutJustification
At a glance: how this guide is organized · 6 fix steps · 5 key tools

Symptoms#

Users report Microsoft's default DLP messages on content they're sure isn't sensitive:

Text
Your email conflicts with a policy in your organization.
Your email message conflicts with a policy in your organization. The message wasn't delivered to all recipients.
This item conflicts with a policy in your organization.
Access to this item is blocked for everyone except its owner, last modifier, and the primary site admin.
This file conflicts with a policy in your organization. Go to the File menu for more information.

Around them you see the same pattern: alerts full of invoice numbers, timestamps or test data, simulation results the data owners reject, and a growing number of overrides and false-positive reports on one rule.

Why it happens#

Which change stops a DLP false positiveDoes the tip users see come from the rule you're tuning? if No: Find the rule that shows the tip (Often a test policy in simulation; retire abandoned simulations); if Yes: Does the rule accept low confidence or a single instance? if Yes: Raise confidence and instance count (Require High (or at least Medium) and a realistic minimum count); if No: Is the match a legitimate flow you can name? if Yes: Add a narrow exception (A partner domain, system account or group; never a whole location); if No: Fix the sensitive information type (Supporting keywords, 300-character proximity, exclusions or exact data match)Does the tip users see comefrom the rule you're tuning?FIXFind the rule thatshows the tipOften a test policy insimulation; retireabandoned simulationsNoDoes the rule accept lowconfidence or a singleinstance?FIXRaise confidence andinstance countRequire High (or at leastMedium) and a realisticminimum countYesIs the match a legitimate flowyou can name?FIXAdd a narrow exceptionA partner domain, systemaccount or group; never awhole locationYesFIXFix the sensitiveinformation typeSupporting keywords,300-character proximity,exclusions or exact datamatchNoNoYesWhich change stops a DLP false positiveDoes the tip users see come from the rule you're tuning? if No: Find the rule that shows the tip (Often a test policy in simulation; retire abandoned simulations); if Yes: Does the rule accept low confidence or a single instance? if Yes: Raise confidence and instance count (Require High (or at least Medium) and a realistic minimum count); if No: Is the match a legitimate flow you can name? if Yes: Add a narrow exception (A partner domain, system account or group; never a whole location); if No: Fix the sensitive information type (Supporting keywords, 300-character proximity, exclusions or exact data match)Does the tip users see come from the ruleyou're tuning?NoFIXFind the rule that shows the tipOften a test policy in simulation; retire abandonedsimulationsYesDoes the rule accept low confidence or asingle instance?YesFIXRaise confidence and instance countRequire High (or at least Medium) and a realisticminimum countNoIs the match a legitimate flow you canname?YesFIXAdd a narrow exceptionA partner domain, system account or group;never a whole locationNoFIXFix the sensitive information typeSupporting keywords, 300-characterproximity, exclusions or exact data match
Figure 1 · Decision tree Which change stops a DLP false positive. Find what matched in the alert and with Test-DataClassification, then answer the questions to pick the narrowest change that fixes it.
  • Low confidence is accepted. Sensitive information types (SITs) have patterns at high, medium and low confidence (85, 75 and 65). A low-confidence pattern usually needs little or no supporting evidence, so any number of the right shape can match.
  • One instance is enough. With a minimum instance count of 1, a single stray match triggers the rule.
  • Proximity is too generous. Supporting keywords anywhere in a long document can make an unrelated number look sensitive. Microsoft advises against unlimited proximity for exactly this reason.
  • The SIT doesn't fit the data. Generic patterns such as dates or national ID formats collide with part numbers, order IDs and log files.
  • The tip comes from another rule. Users only see the tip from the most restrictive, highest-priority matching rule, and that includes policies still in simulation mode. A test policy can be the one producing the complaints.

How to fix it#

1. Find exactly what matched#

Open the alert or the event in activity explorer and note the policy, the rule and the sensitive information types detected; see investigating DLP alerts. Then reproduce the match with a copy of the content in Security & Compliance PowerShell:

PowerShell
Connect-IPPSSession
# Text sample: shows each detected type with its count and confidence
$r = Test-DataClassification -TextToClassify (Get-Content "C:\Temp\sample.txt" -Raw)
$r.ClassificationResults

# Whole file: extract the text first, then classify it
$x = Test-TextExtraction -FileData ([System.IO.File]::ReadAllBytes("C:\Temp\sample.docx"))
Test-DataClassification -TestTextExtractionResults $x.ExtractedResults

# What the rule asks for today
Get-DlpComplianceRule -Policy "DLP - Customer data" | Format-List Name,Priority,ContentContainsSensitiveInformation

Compare the confidence and count the engine reports with what the rule accepts. That tells you which of the next steps applies.

2. Raise the confidence level and instance count#

Edit the rule, open the Content contains › Sensitive information types condition and, for each type, require High confidence (or at least Medium) and a realistic minimum instance count. A pattern that works well splits the work across rules: a few instances only notify, more instances shared externally block. Microsoft's own example uses five instances as the dividing line between notifying and blocking.

3. Add narrow exceptions#

Use the rule's exception conditions for legitimate flows you can name: a partner's recipient domain, a system account, a document name pattern, a specific group. Keep each exception as small as possible, document why it exists and who approved it, and never exclude a whole location to silence a noisy rule.

4. Fix the classifier instead of the rule#

When the SIT itself is wrong for your data, copy the built-in type and edit the copy, or create a custom one (see custom sensitive information types). Microsoft's false-positive guidance recommends:

  • Supporting elements: require keywords such as "DOB" near a date, so headers and timestamps stop matching.
  • Proximity of 300 characters for new custom types, not "anywhere in the document". For large tabular data, the RelaxProximity option is set through PowerShell.
  • Exclusions: exclude specific values, prefixes or suffixes that you know are harmless.
  • Better technology for known data: exact data match for customer or employee records, and trainable classifiers for content without a fixed pattern.

5. Test before you publish#

Use the SIT's test function in the portal or the on-demand classification capability against a set of known-good and known-bad samples. Keep the samples; they become your regression test for every future change. In content explorer, mark SharePoint and OneDrive items as a match or not a match. That feedback can include a redacted copy for Microsoft to improve built-in types.

6. Turn overrides into tuning data#

In the rule's policy tip settings, allow users to report a false positive and override (in PowerShell, -NotifyAllowOverride with FalsePositives, WithJustification or WithoutJustification; it only offers an override when the rule also blocks access). In Outlook the path is Show Details › Override, then a business justification or a false-positive report. These reports are logged, so review them per rule every month. A rule with many reports needs tuning, not more user training.

Verify the fix#

  • Test-DataClassification on your known false-positive samples no longer returns the type at the confidence and count the rule requires, while genuine samples still do.
  • Put the edited policy back into simulation mode for a cycle; see from simulation mode to enforcement. Matches per day and false-positive reports should drop, and the data owners should agree with what remains.
  • Re-run the user's original scenario: no policy tip on the harmless content, the expected tip on real sensitive data.

Prevent it next time#

  • Start every new policy in simulation mode, scoped to a pilot group first.
  • Give each rule one purpose and record the confidence, instance count and exceptions you chose, with the reason.
  • Prefer exact data match or labels as conditions when you know precisely what must be protected.
  • Remember that the tip users see belongs to the most restrictive matching rule, including test policies, so retire abandoned simulations.

References#

Written and checked against current Microsoft Learn documentation. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

Written by

Omer Eltayeb

Intune Subject Matter Expert in Cairo, Egypt, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Configuration Manager, Microsoft Entra ID, Microsoft Defender, Exchange and Microsoft 365 with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)