vendor access review spreadsheet import failed: duplicate entitlement error fix
Fixes a vendor access review spreadsheet import that fails with a duplicate entitlement error by deduplicating on the true entitlement key and resolving conflicting rows. Use when a vendor or application spreadsheet will not load. Not for duplicate user accounts in the source system itself.
TL;DR
Deduplicate against the entitlement key the review system actually uses, which is usually user plus application plus entitlement, not the whole row. Group the spreadsheet by that key, and where duplicates are exact, keep one; where they conflict on dates, owner or status, take the conflict list back to the application owner rather than guessing. Load the cleaned file, reconcile accepted rows against your cleaned count, and keep the conflict list as review evidence because each conflict is a real data quality finding.
vendor access review spreadsheet import failed: duplicate entitlement error fixUse this when
- A vendor entitlement spreadsheet import stops with a duplicate entitlement error.
- The same user and entitlement appear on multiple rows with different details.
- Exports merged from several application owners collide on load.
Not for this skill when
- The system contains duplicate accounts for one person. That is an identity cleanup, separate from the import file.
- The file format itself is rejected before duplicate checks. Fix the format first.
Steps
- Copy the import error details and note the key fields the review system names in its duplicate message, or find them in its import guide. Verify: the exact duplicate key definition is recorded.
- Load the spreadsheet into a tool that can group rows, group by that key, and list every key with more than one row together with how many rows it has. Verify: all duplicate keys are listed with counts.
- Split the duplicates into exact copies and conflicts by comparing the remaining columns, especially grant date, owner and status. Verify: duplicates are classified as exact or conflicting for every key.
- Remove the extra copies of exact duplicates, keeping one row each, and record how many rows were removed for the reconciliation. Verify: the cleaned file has one row per exact duplicate key.
- Send the conflict list to the application or vendor owner with a deadline, asking which row is authoritative per key, and hold those keys out of the import if answers will not arrive in time. Verify: conflicts are either resolved by the owner or explicitly held out.
- Import the cleaned file, compare accepted rows with the expected count from your cleaning steps, and investigate any difference before proceeding. Verify: accepted rows equal the expected count or the difference is explained.
- File the duplicate and conflict lists with the review evidence and ask the source owners to fix their export so the next cycle starts clean. Verify: the evidence includes the lists and the source fix request.
Why it happens
Vendor and application exports are usually generated per system, per team or per month and merged by hand, so the same entitlement legitimately appears in two source files. The review system key sees one entitlement with two rows and refuses both. Exact duplicates are a merge artefact and safe to collapse; conflicting duplicates are genuine uncertainty about who granted what and when, and they deserve an owner decision, not a coin flip during import. Handling the two classes differently keeps the import moving and the audit story clean.
Variants and edge cases
duplicate entitlement rows block review import
The import phrasing. Ask what key the system uses before deduplicating; deleting by whole row misses near duplicates that still collide.
same user entitlement appears twice with different dates
The conflict phrasing. Different grant dates may mean a regrant after revocation; the owner must say which row describes current access.
merged vendor spreadsheets will not load for audit
The merge phrasing. Deduplicate after merging with the system key, and keep source file names on rows for traceability.
Edge cases to check before closing the review cycle:
- A user with two accounts in one application creates near duplicates that are both real. Model them as separate account entitlements, not duplicates.
- Time bound entitlements can repeat a key legitimately across periods. Include the period in your working key when the system allows it.
- Keep the removed rows. Auditors may ask how a count changed between the vendor file and the loaded review.
Compatibility: Spreadsheet based access review imports, vendor entitlement exports, common review platforms with keyed import validation.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_kHZIDbX1GiGnc9tUJECdmw