Skip to content
Privacy Requests
Guides
Duplicate DSR Detection

Duplicate DSR detection

Fides can automatically detect and suppress duplicate Data Subject Requests (DSRs). When enabled, any new privacy request that matches an existing one — same identity, same request type, within a configured time window — is automatically labeled Duplicate and skipped without processing.

You can also enable auto-denial, which automatically denies detected duplicates and notifies the data subject — removing the need to review and close each duplicate by hand.

Duplicate detection applies to access and erasure requests only. Consent requests are excluded.

How duplicate detection works

When a new privacy request is received, Fides checks for existing requests that match on the configured criteria. Matching is always scoped to a single policy — only requests submitted under the same policy are compared, so different request types such as access vs. erasure are always treated separately. Within that scope, Fides compares:

  • Identity fields — by default, the requester's email address. Can be extended to include additional fields such as phone number (see Configuring duplicate detection).
  • Time window — only requests submitted within the configured lookback period are considered (default: 365 days).
  • Location/jurisdiction (optional, on by default) — when enabled, only requests with the same location/jurisdiction are considered duplicates. Matching is exact: jurisdictions are compared as-is and are not nested, so a region-level location (e.g. US-CA) is not treated as matching its parent country (US). Requests that both have no location set match each other on this criterion.
  • Property (optional) — when enabled, only requests submitted against the same property are considered duplicates.
  • Custom fields (optional) — when enabled, matches are further narrowed to requests with matching values for the specified custom privacy request fields. Custom fields refine identity-based matching rather than replacing it.

Fides combines all active criteria with AND logic — a request must match on every enabled criterion to be flagged as a duplicate.

If a match is found, Fides groups the requests together and then applies the following priority rules to decide which request is the canonical (authoritative) one:

PriorityConditionOutcome
1An existing request in the group is already actioned (approved, in processing, paused, awaiting email send, requires input, requires manual finalization, or error)New request is marked Duplicate
2An existing request in the group has a verified identity and this request does notNew request is marked Duplicate
3This request is the first to have its identity verifiedThis request is canonical and will not be marked as a duplicate; other unverified requests are marked Duplicate
4No requests have verified identities — the oldest request in the group is canonicalNewer matching requests are marked Duplicate
Fides matches only against non-terminal requests. Requests that have already reached a final state — completed, denied, or canceled — are not considered, so a new request that matches only a completed or denied request is treated as fresh, not a duplicate.

Duplicate requests are assigned a "Duplicate" status and are automatically skipped during execution. Their activity log will record a Duplicate Request Detection entry explaining which canonical request caused the duplicate label.

Pre-approval webhooks do not run for duplicate requests — whether a duplicate is left in Duplicate status or auto-denied. Because a duplicate is resolved before the approval stage, any configured pre-approval webhook is bypassed.

Automatically denying duplicates

By default, Fides flags duplicates with a Duplicate status and leaves them for an administrator to review. With auto-denial enabled, Fides goes one step further and automatically moves each detected duplicate to a Denied status without any manual action.

You configure auto-denial independently of duplicate detection. You can run detection on its own (flag duplicates for manual review) or add auto-denial on top of it (deny them automatically).

When auto-denial is enabled and a request is detected as a duplicate:

  1. Fides transitions the request from Duplicate to Denied automatically — no admin action needed.
  2. Fides sends a denial notification email to the data subject (when review notifications are configured and enabled for the property), using the configurable denial reason. The default message explains that an existing request with the same details is already being processed.
  3. Fides records the denial for audit purposes (see Audit trail).

The original (canonical) request continues processing normally; Fides denies only the duplicate.

Duplicate detection settings with 'Automatically deny duplicates' enabled, showing the configurable denial reason sent to data subjects
Auto-denial applies whenever it is enabled, independently of the require_manual_request_approval setting. Even when your organization requires manual approval for privacy requests in general, detected duplicates are still automatically denied — the manual-approval requirement does not hold them in Duplicate status.
A duplicate is auto-denied only once its own identity is verified (or immediately, if identity verification isn't required). When verification is required, a detected duplicate is flagged Duplicate and waits — it is not auto-denied while the data subject's identity is unverified. When they verify, Fides re-evaluates: if this is the first request in the group to be verified, it becomes the canonical request and continues processing; if a verified or in-progress request already exists, this one is auto-denied as the duplicate. Holding off on denying unverified requests is deliberate — auto-denying a request whose identity hasn't been confirmed could wrongly deny a legitimate requester, a compliance risk.

Audit trail for auto-denied requests

Every auto-denial is fully auditable:

  • The activity timeline records a Duplicate Request Detection event log entry identifying the canonical request the duplicate matched against.
  • The request's audit log records the denial action, including the denial reason and the ID of the original request the duplicate matched (Duplicate of request <id>).
  • Fides marks auto-denied requests with a denial source, distinguishing them from manual denials.

You can access these records from the request's detail view in the Request Manager.

Configuring duplicate detection

Duplicate detection is disabled by default. To configure it:

  1. Navigate to SettingsDSR configuration
  2. Scroll to the Duplicate detection section
  3. Toggle Enable duplicate detection on
  4. Configure the matching criteria and options described below
  5. Click Save

The available settings are:

SettingDescription
Enable duplicate detectionTurns duplicate detection on or off.
Duplicate detection window (days)The number of days to look back when comparing requests (minimum: 1, maximum: 3,650; default: 365).
Identity fields to matchThe identity fields used for matching. At least one identity field is required for duplicate detection to run. Options include Email, Phone number, GA Client ID, LJT Reader ID, Fides User Device ID, and External ID. Defaults to Email.
Match location/jurisdictionWhen on, only requests with the same location/jurisdiction are considered duplicates. On by default.
Match property IDWhen on, only requests with the same property ID are considered duplicates. When off, property ID is ignored.
Custom fields to matchAdditional custom privacy request field labels that further narrow matches. Custom fields refine identity-based matching — they do not replace it. Type a label and press Enter to add it.
Automatically deny duplicatesWhen on, detected duplicates are automatically denied (see Automatically denying duplicates).
Denial reasonThe message sent to the data subject when a duplicate is auto-denied. Required when auto-denial is on; maximum 1,000 characters.
Duplicate detection settings showing the matching criteria: detection window, identity fields, match location/jurisdiction, match property ID, and custom fields
At least one identity field is required — duplicate detection always anchors on identity. Saving a configuration that enables detection with no identity field is rejected. Custom fields refine identity-based matching but cannot be used on their own.
Changing the matching criteria or detection window will only affect new requests. Previously received requests are not re-evaluated or retroactively marked as duplicates.

Configuration via API or environment variables

The same settings can be managed via the API or environment variables. By default only email is used for identity matching.

Environment variable example:

FIDES__PRIVACY_REQUEST_DUPLICATE_DETECTION__MATCH_IDENTITY_FIELDS=["email","phone_number"]

API

PATCH /api/v1/config
{
  "privacy_request_duplicate_detection": {
    "enabled": true,
    "time_window_days": 365,
    "match_identity_fields": ["email", "phone_number"],
    "match_location": true,
    "match_property_id": false,
    "match_custom_fields": [],
    "auto_deny_enabled": false,
    "auto_deny_reason": "This request has been denied because an existing request with the same details is already being processed."
  }
}
A request must include all configured identity fields to be eligible for duplicate detection. If any required field is missing, the request is treated as non-duplicate.

Viewing duplicate requests

When duplicate detection is enabled and duplicates exist, the Request Manager displays a "X duplicate requests" button above the request list. Clicking it filters the view to show only requests with a Duplicate status.

You can also filter for duplicates manually:

  1. Navigate to Privacy RequestsRequest Manager
  2. Use the Status filter and select Duplicate

Understanding a duplicate request

To see why a specific request was marked as a duplicate:

  1. Click on the request to view its details
  2. Select View Logs
  3. Click on an Event log row with the skipped status
  4. Copy the duplicate request ID
  5. Return to the Request Manager page
  6. Search for the duplicate request using the ID copied in step 4

Workflow for handling duplicates

How you handle duplicates depends on whether auto-denial is enabled.

  • With auto-denial enabled, duplicates are denied automatically and the data subject is notified — no further action is typically required. Use the audit trail to review what was denied and why.
  • With auto-denial disabled, duplicates are flagged with a Duplicate status and left for review. Depending on your organization's process you may want to act on them manually.

Bulk actions on duplicate requests

Duplicate requests support the same bulk actions as pending requests. To act on multiple duplicates at once:

  1. Navigate to Privacy RequestsRequest Manager
  2. Filter by Status: Duplicate (or click the "X duplicate requests" button)
  3. Use the Select all checkbox to select all visible requests, or check individual requests
  4. Open the bulk actions dropdown and choose an action:
    • Deny — formally deny the requests (a denial reason is required). This is the recommended action when you want a clear audit trail showing the requests were reviewed and dismissed.
    • Delete — remove the requests from view. Use this to clean up noise when the duplicates are clearly redundant.
    • Approve — re-queue the requests for processing. Use this if a request was incorrectly labeled as a duplicate and needs to be fulfilled.
Bulk actions only apply to requests that support that action. If your selection includes a mix of statuses, Fides will notify you how many requests will be affected before proceeding.
Duplicate requests receive a receipt acknowledgment email (if configured), since that fires before duplicate detection runs. When auto-denial is disabled, no denial or completion email is sent — the data subject is not explicitly notified that their request was flagged as a duplicate. When auto-denial is enabled, a denial notification is sent automatically (see Automatically denying duplicates).

Other handling options

  • Leave them — Duplicates are already suppressed from processing. If your team reviews them periodically, they can remain as an audit record without any further action.
  • Check the canonical request — Use the ID from the duplicate's events log to find the related canonical request and verify it is progressing correctly.
  • Re-evaluate configuration — If legitimate requests from the same person are being incorrectly flagged (e.g., two people sharing the same email address, or a re-submission after a previous request errored), consider adjusting the time window or matching criteria, or consulting your Fides administrator to review the configuration.