BOM import fails on duplicate part numbers in SBOM management module

We’re having issues importing supplier BOMs via CSV in ENOVIA R2022x. The import process fails with ‘Duplicate Part Number’ error even though the parts don’t actually exist in our system yet.

Error from import log:


ERROR: Duplicate Part Number detected
Line 47: Part P-COMP-8821 already exists
Validation failed: Cannot proceed with import
Rollback initiated

When we search for part P-COMP-8821 in the system, nothing comes up. We’ve checked archived parts, obsolete parts, and even the recycle bin - the part doesn’t exist anywhere. Our CSV data has been normalized according to ENOVIA guidelines, with proper column headers and data formatting. The import validation logic seems to be checking against some hidden index or cache that we can’t access.

We need to complete these SBOM imports for compliance reporting deadlines next week. We’re on R2022x.GA with no hot fixes applied yet. Could this be related to the CSV data normalization process or is there a known bug in the patch release notes we should check?

Here’s the comprehensive solution covering all three focus areas:

1. CSV Data Normalization: First, verify your CSV file doesn’t contain internal duplicates or formatting issues. Run this validation before import:

a) Open your CSV in a text editor (not Excel) and check for hidden characters, especially in part numbers. Unicode characters like smart quotes or non-breaking spaces can cause the validator to see duplicates where none exist visually.

b) Use this command to check for duplicate part numbers within your CSV:

cut -d',' -f1 sbom_import.csv | sort | uniq -d

c) Ensure your CSV headers exactly match ENOVIA’s expected format:


PartNumber,PartName,Description,Quantity,UOM,SupplierName

Case sensitivity matters - ‘PartNumber’ is not the same as ‘Part Number’ or ‘partnumber’.

2. Import Validation Logic Issue: The root cause is the pre-validation cache in R2022x.GA. This cache stores validation results between import attempts but doesn’t clear properly when imports fail. To fix:

a) Clear the import validation cache before attempting import:

SBOMImportCache.clearValidationCache();
SessionHelper.clearImportContext();

b) There’s also a database-level validation table that needs clearing. Execute this SQL (backup first):

DELETE FROM sbom_import_validation_cache
WHERE import_session_id IN (
  SELECT session_id FROM import_sessions
  WHERE status = 'FAILED' AND module = 'SBOM'
);

c) Restart the ENOVIA import service to ensure clean state.

3. Patch Release Notes - Critical Fix Required: You’re on R2022x.GA which has a known bug with SBOM import validation. According to the R2022x.HF2 release notes, there’s a critical fix for duplicate detection logic that you need:

Bug ID: ENO-28447 - “SBOM CSV import fails with false duplicate part number errors when validation cache contains stale entries”

The fix is included in R2022x.HF2 and later. You MUST apply at least HF2 to resolve this issue permanently. The hot fix corrects:

  • Validation cache lifecycle management
  • Unicode character handling in part numbers
  • Rollback cleanup of validation tables

Immediate Workaround (until you can apply HF2):

If you can’t apply the hot fix immediately due to change control processes, use this workaround:

  1. Split your CSV into smaller batches (50 parts per file)
  2. Clear validation cache before each import attempt
  3. Use the SBOM import API directly instead of the UI import tool:
SBOMImportService.importWithValidation(
  csvFile,
  skipDuplicateCheck=true,
  forceCommit=false
);
  1. After each successful batch, verify the parts were created before proceeding to the next batch

Long-term Solution: Schedule maintenance window to apply R2022x.HF3 (includes HF2 fixes plus additional SBOM enhancements). After applying the hot fix, re-test your full import process with the original CSV file. The duplicate detection logic will work correctly and you won’t need the cache-clearing workarounds.

For your immediate compliance reporting deadline, use the batch import workaround to get the data in, then plan the hot fix deployment for next month.


This draft is based on general ENOVIA knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

This sounds like a database index issue. The import validation might be checking a stale index that still references deleted parts. Try rebuilding the part number unique index.

I’ve seen this behavior when the CSV file itself contains duplicate entries across different rows. Even if the parts don’t exist in ENOVIA, the import validator checks for duplicates within the CSV file being imported. Review your CSV data normalization process - scan the entire file for duplicate part numbers, not just the line that’s failing. Sometimes Excel or other CSV editors introduce hidden duplicate rows during copy-paste operations. Also check if your CSV has multiple sheets and the import is trying to process all of them, which could create duplicate entries during the batch import process.

“Tested this on ENOVIA R2022x and the cut/uniq bash command immediately surfaced duplicate part numbers hiding Unicode non-breaking spaces that the SBOM import validator flagged as conflicts.”

Check the import template configuration. Sometimes the duplicate detection logic is configured too aggressively and flags parts as duplicates based on partial matches or similarity scores rather than exact matches.

We encountered this in R2022x.GA - it’s a known issue. The SBOM import module uses a pre-validation cache that doesn’t get cleared between import attempts. If a previous import failed partway through, the cache still holds references to parts that were validated but not committed. The validation logic checks this cache first before checking the actual database, which is why you’re seeing ‘duplicate’ errors for parts that don’t exist. You need to clear the import validation cache manually. There’s also a bug where the CSV parser doesn’t handle certain Unicode characters in part numbers correctly, treating them as duplicates of ASCII equivalents.

Definitely check the R2022x patch release notes. There were several SBOM import fixes in HF2 and HF3 related to validation logic and CSV parsing issues.

Have you tried importing a small subset of the CSV to isolate which specific part numbers are causing the issue? Sometimes the error message points to one line but the actual problem is elsewhere in the file.