- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2025 06:01 AM
Hi All,
I have an issue for one of the AIX server where discovery is failing with 'MULTIPLE_DUPLICATE_RECORDS' error message.
Complete Error Message -
MULTIPLE_DUPLICATE_RECORDS Found duplicate records in table [cmdb_ci_hardware] using fields [serial_number]
Let me give you a brief background on what analysis I have done.
1. I am not able to reproduce this in the Dev instance.
2. I have also compared the AIX pattern between prod and dev no changes.
3. There are other AIX servers where discovery is working fine.
4. As per the error message validated few tables relating to aix pattern (ibm frame tables, hardware table) etc.
5. Also analysed the payload to understand more on this.
Some of the things which I want to highlight from the payload
"markers": [],
"mergedPayloadIds": [],
"warningCount": 0,
"className": "cmdb_ci_lpar_instance",
"operation": "INSERT_AS_INCOMPLETE",
"sysId": "Unknown",
"errors": [
{
"error": "ABANDONED",
"message": "Abandoning processing payload item '{\"className\":\"cmdb_ci_lpar_instance\",\"values\":{\"install_status\":\"1\",\"name\":\"qs07902\",\"is_vio\":\"false\",\"correlation_id\":\"xxxxxx_xx\",\"object_id\":\"xxxx_xx\",\"sys_class_name\":\"cmdb_ci_lpar_instance\"},\"internal_id\":\"xxxxxxxxx\",\"sys_object_source_info\":{},\"settings\":{},\"sys_ire_info\":{},\"display_values\":{}}', since its depends on payload item '{\"className\":\"cmdb_ci_ibm_frame\",\"values\":{\"install_status\":\"1\",\"name\":\"IBM Frame@xxxxxxxxx\",\"serial_number\":\"xxxxxxxx\",\"sys_class_name\":\"cmdb_ci_ibm_frame\"},\"interna...}' has errors"
}
]
},
],
"markers": [],
"mergedPayloadIds": [],
"warningCount": 0,
"className": "cmdb_ci_ibm_frame",
"operation": "INSERT_AS_INCOMPLETE",
"sysId": "Unknown",
"errors": [
{
"error": "MULTIPLE_DUPLICATE_RECORDS",
"message": "Found duplicate records in table [cmdb_ci_hardware] using fields [serial_number]. "
}
]
},
{
I would need some inputs and step by step approach we could take to resolve this issue.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2025 03:55 AM
Hi @HarshitaC ,
As per my understanding, Root cause (based on your error & payload)
Discovery tries to insert a new cmdb_ci_ibm_frame using serial_number.
But in your CMDB there are multiple existing records in cmdb_ci_hardware that have the same serial_number.
IRE sees multiple matches → cannot decide which to use → errors with:
MULTIPLE_DUPLICATE_RECORDS Found duplicate records in table [cmdb_ci_hardware] using fields [serial_number].
As a result:
* It fails to insert the cmdb_ci_ibm_frame
* And then, since the LPAR CI depends on the frame (via payload hierarchy), it also fails with:
ABANDONED processing payload item...
Troubleshooting & fix
Step 1: Check duplicates in CMDB
Run this query:
select sys_id, name, serial_number, sys_class_name
from cmdb_ci_hardware
where serial_number='xxxxxxx'
* Replace 'xxxxxxx' with the actual serial_number from payload.
* Confirm if you see more than one record with the same serial_number.
Step 2: Check Identification Rule for cmdb_ci_ibm_frame
Go to:
Identification Rules → Table: cmdb_ci_ibm_frame
Check:
* Is serial_number the only identifier?
* Or combined with other fields like name, object_id etc.
If only serial_number → very likely to hit duplicates if multiple frames have same serial.
Step 3: Decide how to clean CMDB
Option A:
* Identify which duplicate CI is real, keep it.
* Delete the other(s).
Option B:
* Merge data manually if both records have partial data.
Step 4: Add uniqueness in Identification Rule (if possible)
If the IBM frame pattern also discovers object_id or another unique attribute:
* Modify the Identification Rule to use serial_number + object_id
* Or serial_number + name (if name is stable & unique).
This helps IRE uniquely identify the CI, avoiding duplicates.
Step 5: Validate Discovery pattern
Make sure:
* Pattern for cmdb_ci_ibm_frame is correctly populating serial_number, object_id, name.
* No missing mandatory attributes.
* No customization differences between prod & dev.
Step 6: Re-run Discovery
After cleanup / rule fix:
* Trigger Discovery again in prod.
* Validate the IBM Frame gets updated instead of insert failing.
* LPAR CIs should also get created / updated properly.
Additional tips & best practices
1. Run regular CMDB Health → Duplicate CI dashboard.
2. Avoid multiple sources writing to same class with overlapping identifiers.
3. Consider adding a business rule or duplicate detection to prevent duplicates from manual inserts or imports. 4. Make sure Discovery schedules target correct subnets & credentials.
Please appreciate the efforts of community contributors by marking appropriate response as Mark my Answer Helpful or Accept Solution this may help other community users to follow correct solution in future.
Thank You
AJ - TechTrek with AJ - ITOM Trainer
LinkedIn:- https://www.linkedin.com/in/ajay-kumar-66a91385/
YouTube:- https://www.youtube.com/@learnitomwithaj
Topmate:- https://topmate.io/aj_techtrekwithaj (Connect for 1-1 Session)
ServiceNow Community MVP 2025
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-01-2025 08:04 AM
Below error clearly states you have duplicate records in CMDB with that Serial Number. Whatever Serial Number value you are getting in payload, search that in cmdb_ci_hardware table, you should see multiple entries for that Serial Number.
"error": "MULTIPLE_DUPLICATE_RECORDS",
"message": "Found duplicate records in table [cmdb_ci_hardware] using fields [serial_number]. "
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-04-2025 03:55 AM
Hi @HarshitaC ,
As per my understanding, Root cause (based on your error & payload)
Discovery tries to insert a new cmdb_ci_ibm_frame using serial_number.
But in your CMDB there are multiple existing records in cmdb_ci_hardware that have the same serial_number.
IRE sees multiple matches → cannot decide which to use → errors with:
MULTIPLE_DUPLICATE_RECORDS Found duplicate records in table [cmdb_ci_hardware] using fields [serial_number].
As a result:
* It fails to insert the cmdb_ci_ibm_frame
* And then, since the LPAR CI depends on the frame (via payload hierarchy), it also fails with:
ABANDONED processing payload item...
Troubleshooting & fix
Step 1: Check duplicates in CMDB
Run this query:
select sys_id, name, serial_number, sys_class_name
from cmdb_ci_hardware
where serial_number='xxxxxxx'
* Replace 'xxxxxxx' with the actual serial_number from payload.
* Confirm if you see more than one record with the same serial_number.
Step 2: Check Identification Rule for cmdb_ci_ibm_frame
Go to:
Identification Rules → Table: cmdb_ci_ibm_frame
Check:
* Is serial_number the only identifier?
* Or combined with other fields like name, object_id etc.
If only serial_number → very likely to hit duplicates if multiple frames have same serial.
Step 3: Decide how to clean CMDB
Option A:
* Identify which duplicate CI is real, keep it.
* Delete the other(s).
Option B:
* Merge data manually if both records have partial data.
Step 4: Add uniqueness in Identification Rule (if possible)
If the IBM frame pattern also discovers object_id or another unique attribute:
* Modify the Identification Rule to use serial_number + object_id
* Or serial_number + name (if name is stable & unique).
This helps IRE uniquely identify the CI, avoiding duplicates.
Step 5: Validate Discovery pattern
Make sure:
* Pattern for cmdb_ci_ibm_frame is correctly populating serial_number, object_id, name.
* No missing mandatory attributes.
* No customization differences between prod & dev.
Step 6: Re-run Discovery
After cleanup / rule fix:
* Trigger Discovery again in prod.
* Validate the IBM Frame gets updated instead of insert failing.
* LPAR CIs should also get created / updated properly.
Additional tips & best practices
1. Run regular CMDB Health → Duplicate CI dashboard.
2. Avoid multiple sources writing to same class with overlapping identifiers.
3. Consider adding a business rule or duplicate detection to prevent duplicates from manual inserts or imports. 4. Make sure Discovery schedules target correct subnets & credentials.
Please appreciate the efforts of community contributors by marking appropriate response as Mark my Answer Helpful or Accept Solution this may help other community users to follow correct solution in future.
Thank You
AJ - TechTrek with AJ - ITOM Trainer
LinkedIn:- https://www.linkedin.com/in/ajay-kumar-66a91385/
YouTube:- https://www.youtube.com/@learnitomwithaj
Topmate:- https://topmate.io/aj_techtrekwithaj (Connect for 1-1 Session)
ServiceNow Community MVP 2025
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-05-2025 02:23 AM
@AJ-TechTrek - Thanks for the detailed explanation and steps. Please look into the below replies.
Step 1: Check duplicates in CMDB - I can see multiple records with the same serial number. I have attached the screenshot for reference.
Step 2: Check Identification Rule for cmdb_ci_ibm_frame
* Is serial_number the only identifier? - No we can see different identifiers, it should try also check other identifier's as per the priority correct? I have attached the screenshot for reference.
I would need clarification on this to proceed with the next steps.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-05-2025 03:53 AM
@AJ-TechTrek - I have analysed discovery logs for one of the working server and when I checked its clearly shows that its picking both name and serial number as its identifier.