This family covers the org structure entities that sit underneath an employee or contractor record: Cost Codes, Departments, Locations, Unions, and the Work Location field on a person. Most of these messages occur for one of three reasons: a required field is blank, the same name or code was sent to Payroll more than once in the same run, or the sync found more than one existing record in Payroll that could match and cannot safely guess which one to update. In every case Payroll only skips the one record involved; every other Cost Code, Department, Location, Union, Employee, or Contractor in the run still processes normally.
Error Messages
| Message text | Direction | Occurs when | Outcome | Fix |
|---|---|---|---|---|
| A Cost Code with Id: '[cost code id]' does not have a Name. This field is required and the record will not be Synced. Modify the data in Arcoro Time to make each record have a unique Name and execute the Sync again. | Payroll to Arcoro (read) and Arcoro to Payroll (write) | Read side: the Hub cost code is marked active, and its Name field is blank or whitespace. Inactive Hub cost codes are never checked, so a blank Name on an inactive cost code does not trigger this. Write side: the incoming cost code's Name field is blank or whitespace, regardless of its active status. | Record skipped. The one cost code is not synced; every other cost code in the run still processes. | In Arcoro Time, give the cost code a Name. |
| A Cost Code with Name: '[cost code name]' has already been read. This field must be unique and the record will not be Synced. Modify the data in Arcoro Time to make each record have a unique Name and execute the Sync again. | Payroll to Arcoro (read) | The Hub cost code is marked active, and the combination of its Identifier and Name (case-insensitive) matches a combination already read earlier in the same run. Two active cost codes that share a Name but have different Identifiers do not trigger this; the message text says Name, but the actual duplicate key is Identifier plus Name together. | Record skipped. The one cost code is not synced; every other cost code in the run still processes. | In Arcoro Time, change the Identifier or Name so that no two cost codes share the same Identifier and Name combination. |
| Multiple matches were found for this Cost Code and the Sync does not know which record to use. Correct the data and execute the Sync again. | Arcoro to Payroll (write) | More than one existing cost code in Payroll matches the incoming record on Identifier plus Name (case-insensitive). This is the fallback match used when the source is not Sage Intacct, or when the Sage Intacct identifier match found no result. The message does not include the cost code's name or identifier even though the code passes it; the log text is generic. | Record skipped. The one cost code is not synced; every other cost code in the run still processes. | Escalate. Tier 1 cannot determine which of the duplicate Payroll cost code records to keep; see When to escalate. |
| Cost Code Id is a required field. | Arcoro to Payroll (write) | The incoming cost code's Id field is blank or missing. | Record skipped. The one cost code is not synced; every other cost code in the run still processes. | In the source system feeding this sync, give the cost code an Id. |
| Cost Code Name "[cost code name]" exceeds the maximum length of 50 and will not be synced. Correct the data in the source system and run the sync again. | Arcoro to Payroll (write) | The incoming cost code's Name field is longer than 50 characters. | Record skipped. The one cost code is not synced; every other cost code in the run still processes. | Shorten the cost code's Name to 50 characters or fewer in the source system. |
| Cost Code Id "[cost code id]" exceeds the maximum length of 50 and will not be synced. Correct the data in the source system and run the sync again. | Arcoro to Payroll (write) | The incoming cost code's Id field is longer than 50 characters. | Record skipped. The one cost code is not synced; every other cost code in the run still processes. | Shorten the cost code's Id to 50 characters or fewer in the source system. |
| Attempted to write more than one cost code with id [cost code id] and name [cost code name]. Correct the source data and run the sync again. | Arcoro to Payroll (write) | Two or more incoming cost code records in the same run resolve to the same existing Payroll cost code (matched by Identifier plus Name, or by the Sage Intacct identifier for a Sage Intacct source). This can only happen on an update to an existing Payroll cost code; two brand-new cost codes never collide with each other under this check. | Record skipped. Only the first record that claimed the matching Payroll cost code is written; every later duplicate in the same run is skipped. Other cost codes are unaffected. | Correct the source data so each cost code's Id and Name combination resolves to only one existing Payroll cost code. |
| Multiple records within Hub share the same Intacct Identifier and the Sync does not know which record to use. Contact Arcoro Support to correct this problem. | Arcoro to Payroll (write) | The sync's source system is Sage Intacct (or Sage Intacct For Construction), and the incoming cost code's source identifier matches (case-insensitive) more than one existing Payroll cost code's Intacct identifier. | Record skipped. The one cost code is not synced; every other cost code in the run still processes. | Escalate to Arcoro Support, as the message states. Tier 1 cannot remove a duplicate Hub record. |
| Department '[department code]' has been sent to Payroll multiple times. Only the first department with this name will be saved. Correct the source data and run the sync again. | Arcoro to Payroll (write) | The incoming department's Code value (case-insensitive) was already written earlier in the same run. This check runs regardless of the department's active status. | Record skipped. Only the first department with that code is saved; every later duplicate in the same run is skipped. Other departments are unaffected. | Correct the source data so each department has a unique Code, then run the sync again. |
| Payroll does not support updates to a location's address, as such changes could affect tax calculations. The record will not be Synced. Correct the data in [source system name] by changing the Address back to [Address Line 1, Address Line 2, City, State, Postal Code currently in Payroll] and execute the Sync again. | Arcoro to Payroll (write) | The location already exists in Payroll (this is an update, not a new location), and the incoming record would change Address Line 1, Address Line 2, City, State, or Postal Code from what is currently stored in Payroll. | Record skipped. The entire location update is dropped, including any Name or active status change in the same update, not only the address change. Other locations are unaffected. | In the named source system, change the Address fields back to the values quoted in the message (the values currently on file in Payroll), then run the sync again without an address change. |
| A Location '[location name or matching key]' has duplicates in [CheckHQ or Hub]. The sync cannot determine a match. Contact support to remove the duplicate location. | Arcoro to Payroll (write) | More than one existing record matches the incoming location during matching. This can happen on either side of the location write: more than one CheckHQ Workplace shares the same matching key (the record's CheckHQ id, if the source provided one, or otherwise its Name), or more than one Hub Location shares the same matching key (its CheckHQ id link, or otherwise its Name). | Record skipped. The one location is not synced; every other location in the run still processes. | Escalate to Support, as the message states. Tier 1 cannot remove a duplicate CheckHQ or Hub location record. |
| Location Name is required by Payroll. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | The incoming location's Name field is blank or missing. | Record skipped. The one location is not synced; every other location in the run still processes. | In the source system, give the location a Name. |
| Location Name must be a unique value less than 100 characters long. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | The incoming location's Name field is longer than 100 characters. This check is length only; a duplicate Name in the same run is reported separately by the message below. | Record skipped. The one location is not synced; every other location in the run still processes. | Shorten the location's Name to under 100 characters in the source system. |
| Location Address is required by Payroll. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | The incoming location has no Physical Address section at all. | Record skipped. The one location is not synced; every other location in the run still processes. | In the source system, add a Physical Address to the location. |
| Location Address 1 is required by Payroll. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | The incoming location has a Physical Address section, but its Address 1 field is blank or missing. | Record skipped. The one location is not synced; every other location in the run still processes. | In the source system, add an Address 1 value on the location. |
| Location City is required by Payroll. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | The incoming location has a Physical Address section, but its City field is blank or missing. | Record skipped. The one location is not synced; every other location in the run still processes. | In the source system, add a City value on the location. |
| Location State is required by Payroll. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | The incoming location has a Physical Address section, but its State field has no value. | Record skipped. The one location is not synced; every other location in the run still processes. | In the source system, set a State value on the location. |
| Location Postal Code is required by Payroll. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | The incoming location has a Physical Address section, but its Postal Code field is blank or missing. An empty Postal Code value can trigger this together with the minimum-length message below in the same validation pass. | Record skipped. The one location is not synced; every other location in the run still processes. | In the source system, add a Postal Code value on the location. |
| Location Postal Code is required to have at least 5 characters. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | The incoming location has a Postal Code value present, and it is fewer than 5 characters long. A blank Postal Code does not trigger this message alone; it is covered separately by the required-field message above, and both messages can appear together if the value is an empty string rather than truly absent. | Record skipped. The one location is not synced; every other location in the run still processes. | In the source system, correct the location's Postal Code to at least 5 characters. |
| A Location with Name: '[location name]' has been sent to Payroll multiple times. Only the first Location with this Name will be saved. Correct the source data and run the sync again. | Arcoro to Payroll (write) | The incoming location's Name (case-insensitive) was already written earlier in the same run. | Record skipped. Only the first location with that Name is saved; every later duplicate in the same run is skipped. Other locations are unaffected. | Correct the source data so each location has a unique Name, then run the sync again. |
| The following employees/contractors have this location set as their primary location: [list of employee/contractor identifiers]. Please update their primary location before attempting to set this location to inactive. | Arcoro to Payroll (write) | The location already exists and is currently active in Payroll, the incoming record marks it inactive, and at least one existing employee or contractor in Payroll has this location as their primary workplace. | Record skipped. The location is not deactivated and stays active in Payroll; no other change to the location is applied either. Other locations are unaffected. | In Payroll, reassign the listed employees and contractors to a different primary location, then run the sync again. |
| A record with Name: '[name, or in the Union case the literal word "Union"]' has already been read. This field must be unique and the record will not be Synced. Modify the data in Payroll to make each record have a unique Name and execute the Sync again. | Payroll to Arcoro (read) | Occurs on both the Location and Union read services when a Name (case-insensitive) has already been read earlier in the same run. Location: the quoted value is the actual duplicate Location name. Union: due to an argument-order issue in the code, the quoted value always shows the literal word "Union" rather than the actual duplicate union name, so the message text alone will not identify which union is duplicated. | Record skipped. The one Location or Union is not synced; every other record of that type in the run still processes. | Location: in Payroll, rename one of the locations sharing that Name. Union: in Payroll, find and rename the duplicate union by Name directly, since the message will not show it; the sync log context for the entity (not the message text) is the only place the specific union may be identified. |
| Work Location is required by Payroll. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | Occurs on both the Employee and Contractor writers when the incoming record's Primary Work Location field is blank or missing. | Record skipped. The one employee or contractor is not synced. | In the source system, set a Work Location on the employee or contractor. |
| Work Location '[work location name]' could not be matched against a valid, active location in Payroll. This record will not be synced. Correct the data in the source system and execute the sync again. | Arcoro to Payroll (write) | Occurs on both the Employee and Contractor writers when the Primary Work Location field has a value that does not match the name of any active location in Payroll (case-insensitive). For Employee, this check only runs at all when the sync step has the Location scope enabled; if that scope is off, an unmatched Work Location on an employee is not caught here. For Contractor, this check always runs regardless of scope. | Record skipped. The one employee or contractor is not synced. | In Payroll, confirm an active location exists with that exact name, or correct the Work Location value in the source system to match one. For employees, also confirm the Location scope is enabled for this sync step. |
Confirming the Error
- Open Sync History and find the sync execution for the date and time in question.
- Open the step for the Payroll connector.
- Find the row for the entity named in the message: Cost Code, Department, Location, Union, Employee, or Contractor.
- Check the Errors column for that entity row. A non-zero count means at least one error was logged; open the errors list for that entity to see the message text.
- Match on the fixed part of the sentence, for example "is required by Payroll" or "has already been read", not on the name, code, or identifier inside the quotes, since those values are specific to your data (and, for the Union duplicate-name message, the quoted value is not reliable at all; see the table above).
- A non-zero Failures count is not expected for any message in this article. Every message here is a record-level skip, which is reported as an Error on that entity row; the Added, Updated, and Unchanged counts for that entity will simply be short by the number of skipped records.
Resolving the Error
Cost Code
- Identify whether the error came from the read side (Payroll to Arcoro) or the write side (Arcoro to Payroll) using the Direction column above.
- For a required Name, a duplicate Name, or a length error, correct the field in Arcoro Time (read-side messages) or the source system (write-side messages), as named in the message text.
- For a duplicate-in-run error (the same Id and Name written twice), correct the source data so the combination is unique.
- For a multiple-match or Intacct identifier conflict, do not attempt a fix directly; see When to escalate.
- Re-run the sync and confirm the cost code moves out of the Errors list.
Department
- In the source system, confirm the department's Code value is not duplicated among the departments sent in the same run.
- Correct the source data so each department Code is unique.
- Re-run the sync and confirm the department was created or updated in Payroll.
Location
- For a required-field or length error (Name, Address, Address 1, City, State, Postal Code), open the location in the source system and fill in or correct the named field.
- For a duplicate-Name-in-run error, correct the source data so each location Name is unique.
- For the immutable-address message, do not change the Address 1, Address 2, City, State, or Postal Code on an existing location. Change those fields back to the values quoted in the message in the named source system, then re-run without an address change.
- For the deactivate-primary-location message, reassign the listed employees and contractors to a different primary location in Payroll before attempting to deactivate the location again.
- For a duplicate-match error, do not attempt a fix directly; see When to escalate.
- Re-run the sync and confirm the location moves out of the Errors list.
Union
- In Payroll, look for two or more unions with the same Name (case-insensitive). Because the message text does not reliably show the duplicate name, check the sync log's entity context for the union identifier, or review the union list in Payroll directly.
- Rename one of the duplicate unions in Payroll so each Name is unique.
- Re-run the sync and confirm the union moves out of the Errors list.
Work Location on a person
- In the source system, open the employee or contractor and check the Work Location field.
- If it is blank, set a value.
- If it has a value but the error says it could not be matched, confirm an active location with that exact name exists in Payroll. For an employee, also confirm the Location scope is enabled for the sync step; this specific match check does not run when that scope is off.
- Re-run the sync and confirm the employee or contractor moves out of the Errors list.
When to Escalate
If any of the following occur, you may need to reach out to Arcoro support for additional assistance.
- The message explicitly asks to contact support: the Cost Code Intacct identifier conflict, or either of the Location duplicate-match messages (CheckHQ or Hub side).
- A Cost Code multiple-match error (Correct the data and execute the Sync again) recurs after confirming the source data has only one intended cost code for that Id and Name; tier 1 has no way to identify or remove the duplicate Payroll record from this message alone.
- A Union duplicate-name error is reported, but you cannot find two unions with a matching Name in Payroll; the message text will not reveal which union is affected, so this needs a data pull with visibility into the Hub union records.
- The error persists after the named field has been corrected and confirmed in both systems.
- The message text in the log does not match any message in the table above.