Not Exists In Troubleshooting
Common problems when creating and running a Not Exists In check, their causes, and how to resolve them.
Validation Fails When Creating the Check
Clicking Validate returns an error instead of a success message.
Cause: The rule could not run against the selected data. The most common reasons are an invalid Filter Clause expression, a connection problem with the source, or a container that failed to load.
Resolution:
- Review the error message: it explains what needs attention.
- Check the Filter Clause for typos: it must be a valid SQL
WHEREexpression for the selected container. - If the message says the container is marked as Unloadable, the container was skipped after repeated operation failures. Follow the steps in Unloadable Container Error.
An Expected Overlap Is Reported
Rows you know exist on both sides are flagged.
Cause: That is the rule: the two sets must be disjoint.
Resolution: When part of the overlap is legitimate, narrow the reference filter so only the genuinely forbidden values form the blocked set, or scope the target filter to the rows the rule applies to.
Every Row Fails
The check reports essentially the whole column.
Cause: Almost every target value is present in the lookup set. The usual reasons are a reference filter that is missing or far too broad, or a reference that overlaps the target by construction, such as pointing the Right Reference at the target's own container and field, where every non-NULL value matches itself.
Resolution: Run the reference filter against the reference container and confirm the lookup set holds only the values you mean to forbid, then confirm the Right Reference container and field are the ones you intended.
Rows With NULL Values Are Not Flagged
Rows with an empty target field pass the check.
Cause: This is by design: a NULL has no value to look up.
Resolution: Pair the check with Not Null on the same field to also require presence.
The Check Started Firing Without Anyone Editing It
Anomalies appear on a check that was green for months.
Cause: The lookup set is read at scan time. A reference container that gained rows, or a reference filter whose result widened, makes the same check stricter.
Resolution: Check the reference container first, before assuming the target data changed.
An Edited Check Keeps Behaving the Old Way
You changed the configuration but the anomaly list did not change.
Cause: Edits take effect on the next Scan. Saving the check does not re-evaluate the data, and anomalies raised under the previous configuration are not modified.
Resolution: Run a Scan on the container (or wait for the scheduled one). Old anomalies stay open until you triage them or a Full scan with Auto Resolve clears them. See What Happens to Existing Anomalies.
No Anomalies Although the Data Looks Wrong
A Scan ran, the data clearly breaks the rule, but nothing was reported.
Cause: One of these configurations is excluding the violations:
- The check is in Draft status: Draft checks are not evaluated by Scans.
- The Filter Clause excludes those rows before the evaluation runs.
- The reference filter returns nothing, so the lookup set is empty and every row passes.
- The reference values cannot be cast to the target field's type, so they never match; see How the Two Sides Are Compared.
- Coverage is below 100% and the failing fraction stayed within the tolerance, so the check passed.
Resolution: Confirm the check is Active and test the filter expression against the offending rows. Run the reference filter against the reference container and confirm it returns the values you expect. Then review the coverage setting; see Coverage and Tolerance.
Expected One Anomaly per Row, Got a Single Rolled-Up One
Many rows failed, but the scan reported one Shape Anomaly instead of per-row Record Anomalies.
Cause: When the number of failing rows exceeds the scan's rollup threshold, the per-row findings are grouped into one rolled-up Shape Anomaly.
Resolution: This is expected behavior; the rolled-up anomaly carries sampled source records. To change the threshold, see Maximum Record Anomalies per Check.