Module Navigation

Sage Intacct Troubleshooting: Duplicate Record Sent to Target

Two of the messages in this family fire while Arcoro is reading data out of Sage Intacct: if two Sage Intacct records of the same type have the same Name (or the same ID, for Departments), only the first one is kept and the second is skipped. The wording tells the agent to modify the data to make it unique, but because these are read messages, that means fixing the duplicate in Sage Intacct, not in Arcoro.

The third message is the opposite direction. It fires while Arcoro is writing Employees out to Sage Intacct, when two Employee records in the same Arcoro source data share the same Employee ID. Here the duplicate is in Arcoro, and the fix is in the Arcoro source data.

In every case, only one record survives, and the rest of the sync keeps running. Which of the duplicate records survives is not guaranteed to be the same one on every run.

Error Messages

Message textDirectionOccurs whenOutcomeFix
An Employee with EmployeeIdentifier "[Employee ID]" has been sent to Sage Intacct multiple times. Only the first Employee with this value will be processed and the first employee may differ on subsequent syncs. The duplicate record has a Source System ID of "[Arcoro source record ID]". Correct the source data and run the sync again.Write (Arcoro to Sage Intacct)Two or more Employee records in the same Arcoro source data have the same Employee ID, ignoring upper/lower case.Record skipped. Only the first Employee with that Employee ID is written; every later one with the same Employee ID is rejected.In Arcoro, give each Employee a unique Employee ID, then re-run the sync.
A [record type] with Name: '[name value]' has already been read. This field must be unique and the record will not be Synced. Modify the data to make each record have a unique Name and execute the Sync again.Read (Sage Intacct into Arcoro)Two or more records of the named type, read from Sage Intacct in the same sync, resolve to the same Name value, ignoring upper/lower case.Record skipped. Only the first record with that Name is read; every later one with the same Name is rejected.In Sage Intacct, rename one of the matching records so each has a unique Name, then re-run the sync.
A [record type] with Id: '[id value]' has already been read. This field must be unique and the record will not be Synced. Modify the data to make each record have a unique Id and execute the Sync again.Read (Sage Intacct into Arcoro)Two or more records of the named type, read from Sage Intacct in the same sync, have the same Id value, ignoring upper/lower case.Record skipped. Only the first record with that Id is read; every later one with the same Id is rejected.In Sage Intacct, change the Id on one of the matching records so each is unique, then re-run the sync.

Which Records Can Trigger the Two Generic Read Messages

The Name and ID duplicate messages above are shared wording. The connector fills in the record type label and the duplicate value at the point the check runs. The table below lists every record type confirmed in the provider code, exactly as its label will appear in the message.

Record type in ArcoroMessage it producesWhat counts as the duplicateWhere the user fixes it
Business Unit. The message will show the label Sage Intacct Location/Arcoro Entity, not "Business Unit". Sage Intacct's Location dimension is what Arcoro reads and maps into the Business Unit field; it is not the same thing as an Arcoro Location record.Name messageThe combination of the Sage Intacct Location's Id and Name together (shown as "[Id] - [Name]"), matching another Location's Id and Name combination, ignoring upper/lower case. Two Locations with the same Name but a different Id do not collide.Sage Intacct, on the Location dimension record.
DepartmentId messageThe Sage Intacct Department Id, ignoring upper/lower case.Sage Intacct, on the Department record.
Location, when the connector is set up to read Locations from Sage Intacct Location Dimensions (the default setup)Name messageThe Sage Intacct Location Name, ignoring upper/lower case.Sage Intacct, on the Location dimension record.
Location, when the connector is set up to read Locations from Sage Intacct Project Ship To contacts insteadName messageThe Sage Intacct Project Name, ignoring upper/lower case. This is a separate check, on a separate source object, from the Location Dimensions row above, but it produces the exact same "Location" label in the message.Sage Intacct, on the Project record.
UnionName messageThe Name of the Sage Intacct object the connector is configured to use as the Labor Union list, ignoring upper/lower case.Sage Intacct, on the record in whichever object is configured as the Labor Union list.
Union LocalName messageThe Name of the Sage Intacct object the connector is configured to use as the Labor Union Local list, ignoring upper/lower case.Sage Intacct, on the record in whichever object is configured as the Labor Union Local list.
Union ClassName messageThe Name of the Sage Intacct object the connector is configured to use as the Labor Union Class list, ignoring upper/lower case.Sage Intacct, on the record in whichever object is configured as the Labor Union Class list.

Confirming Error

  1. Open the sync execution for the run referred to.
  2. Find the step for the Sage Intacct connector involved. For the Name/Id messages, this is a read step (Business Unit, Department, Location, Union, Union Local, or Union Class); for the Employee message, this is a write step.
  3. On that step, find the row for the entity in question and check its Errors, Warnings, Information, Failures, Added, Updated, and Unchanged counts. A duplicate record adds to the Errors count, not to Added, Updated, or Failures.
  4. Open the entity row's errors list and match on the fixed part of the sentence ("has already been read", "has been sent to Sage Intacct multiple times"), not on the quoted values, since those vary per record.
  5. Read the record type out of the message to know which entity row you are looking at. If the message reads "Sage Intacct Location/Arcoro Entity", that is the Business Unit entity row, not the Location entity row.
  6. Note the quoted value in the message. For the Name and ID messages, that value (or the ID-Name pair, for the Business Unit label) is the thing that collided in Sage Intacct. For the Employee message, note both the Employee ID and the Source System ID of the record that lost.

Resolving Error

Read Side: Duplicate Name or ID From Sage Intacct

These messages tell the agent to "modify the data to make each record have a unique Name" (or ID). Because this is a read, the data that needs to change is in Sage Intacct, not in Arcoro.

  1. Confirm the sync step is a read (Business Unit, Department, Location, Union, Union Local, or Union Class).
  2. Using the record type table above, identify which Sage Intacct object holds the colliding record: the Location dimension, the Department list, the Project list, or whichever object is configured as the Labor Union, Labor Union Local, or Labor Union Class list.
  3. In Sage Intacct, open that object and find the two (or more) records that share the quoted Name or ID, ignoring case. For a Business Unit collision, both the ID and the Name must match; check both fields.
  4. Rename or renumber one of the matching records in Sage Intacct so the value is unique.
  5. Re-run the sync and confirm the record no longer appears in the Errors list for that entity row.

Write Side: Duplicate Employee ID From Arcoro

  1. Confirm the sync step is an Employee write (Arcoro to Sage Intacct).
  2. In Arcoro, find the Employee records that share the Employee ID quoted in the message. The Source System ID quoted in the message identifies the specific Arcoro record that was skipped; use it to tell the two records apart if their Employee IDs look identical.
  3. Correct the Employee ID on one of the records so each Employee has a unique Employee ID.
  4. Re-run the sync and confirm the Employee no longer appears in the Errors list. Because which record "wins" the collision is not guaranteed to be the same one every run, expect the record shown in the message to potentially change between runs until the underlying duplicate is fixed.

When to Escalate

If any of the following occur, you may need to reach out to Arcoro support for additional assistance.

  • You believe there is only one record with that value. All of these checks ignore upper/lower case, so "Local 42" and "LOCAL 42" collide even though they look different. For the Business Unit message specifically, the check is on the ID and Name together, so also check whether it is only comparing Names and missing an ID match (or vice versa) before escalating.
  • The Employee write message keeps naming a different Arcoro record on each run. This is expected given how the check works, but if you need to resolve every instance of a duplicate rather than just the one currently reported, walk them through checking Arcoro for every Employee sharing that Employee ID rather than fixing one at a time.
  • A record disappears from Sage Intacct or Arcoro entirely after this error, rather than just being skipped for one run. That is not expected behavior for this family and should be escalated with the sync execution ID.
  • The message shows the "Sage Intacct Location/Arcoro Entity" label, and you are looking at Arcoro Location data instead of Business Unit data. Confirm which entity row in the sync log actually has the Errors count before spending time in the wrong place.
Was this article helpful?
0 out of 0 found this helpful