NetSuite Add/Update Contact Error: "A contact record with this name already exists"

I’m working on a flow that adds/updates a contact in NetSuite.

If the contact doesn’t exist, it gets created successfully but intermittently I am receiving this error and the flow doesn’t continue:

Failed to save record because A contact record with this name already exists. Every contact record must have a unique name.

Importing record request to Netsuite:

{
  "nlobjRecordType": "contact",
  "nlobjFieldIds": {
    "internalid": "",
    "company": 1234,
    "subsidiary": 4,
    "email": "john.doe@example.com",
    "entityid": "John Doe"
  },
  "nlobjSublistIds": {},
  "documentIndex": 0,
  "INTEGRATOR_IO_MAPPER": true
}

nlapi calls registered for $R:

r = nlapiCreateRecord("contact", {});
r.setFieldValue("company", 1234);
r.setFieldValue("subsidiary", 4);
r.setFieldValue("email", "john.doe@example.com");
r.setFieldValue("entityid", "John Doe");
nlapiSubmitRecord(r, false, false);

In NetSuite, the contact record does get created at the time of the request.

Question:
What could trigger this intermittent error. Any ideas?

Hi there!

Did you have any criteria set for “how to find existing records?” in your import? We suggest to review your mappings and flow configuration to make sure the correct field is being used for record matching. You may also need to confirm that the data being sent does not unintentionally duplicate an existing record’s name.

You may also try the following steps:

  1. Check existing contacts in the target system to identify if a record with the same name already exists.
  2. Adjust the source data or your flow logic to ensure that each Contact record sent into the target system has a unique name. This may involve:
    • Appending an identifier (like an email address, number, or a timestamp) to the Contact’s name, or
    • Using the system’s auto-generated numbering features (if available) to assign unique values automatically.
  3. If you have multiple records with the same name but they are different entities, consider introducing an additional field (such as email or an external ID) to guarantee uniqueness or to distinguish between them.

If none of these work, feel free to send a support ticket and we’ll be glad to take a look at it.

1 Like

So it gets created, but you're getting this intermittent error, and you've aligned the create timestamp of the contact to when this error came back? If so, seems like a bug to me.

Yep seems like a bug. For example today:
Lookup contact > Not found
Create contact returned error at 10/15/2025 11:17:04 AM via Celigo
However Celigo created this record in the same step:

15/10/2025 11:16 9801 Celigo Service Account Script (Suitelet) Create Record Contact 242106

Are you using our native NetSuite import and using add/update to contact? We're wondering what this "9801 Celigo Service Account" script is.

Yes, native.
"9801 Celigo Service Account" is the netsuite user where the token and roles are assigned to.

However I do have these advanced settings:

I'd recommend a support ticket, but this will probably be a tough one to troubleshoot since it's intermittent.

What I have done first is i re-created this step so that it uses the newest Netsuite API Version, and I removed the concurrency lock.