Avoiding insert and update errors in Instance Data Replication

  • Release version: Zurich
  • Updated July 31, 2025
  • 2 minutes to read
  • Summarize
    Summarized using AI
    This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.

    Summary of Avoiding insert and update errors in Instance Data Replication

    This guidance helps ServiceNow customers prevent insert and update failures during Instance Data Replication (IDR), specifically for producer replication sets created before the Utah release. The key to avoiding replication errors lies in properly configuringsysclassnamefilters for parent tables when replicating both parent and child tables.

    Show full answer Show less

    Key Practices to Avoid Errors

    • Use sysclassname filters on parent tables: When replicating a parent table and its child tables, add a sysclassname filter to the parent table in the outbound replication entry. This prevents unique key violations during inserts and update failures on the consumer instance.
    • Understand failure scenarios:
      • Insert failures: Occur if a child table record tries to insert a duplicate sysid into the parent table.
      • Update failures: Happen when a child record exists only in the parent table on the consumer side, causing update attempts to fail.
    • Determine replication scope:
      • If replicating child tables along with the parent, identify the correct sysclassname value for the parent and add the corresponding filter.
      • If replicating only the parent or only child tables, the filter on the parent table is optional but recommended if child tables are involved.
    • Example: For the Task [task] table, to replicate incidents and tasks, add a filter [Task Type] [is] [Task] to the parent table’s replication set.

    Practical Outcomes

    • Minimizes replication errors related to duplicate inserts and update conflicts.
    • Ensures consistent and reliable data replication across parent-child table relationships.
    • Makes replication configuration more predictable and easier to manage by clearly defining replication filters.

    Next Steps for Customers

    • Review existing producer replication sets created before the Utah release and add appropriate sysclassname filters to parent tables.
    • Decide which child tables to replicate alongside parent tables and configure filters accordingly.
    • Monitor replication payload errors and adjust filters if insert or update failures occur.

    You can avoid insert and update failures in Instance Data Replication (IDR) by specifying a class name filter in the producer replication set.

    Important:
    This topic only applies to producer replication sets created prior to the Utah release.

    When you replicate a parent table and one or more child tables, you must add a sys_class_name filter to the parent table in the outbound entry of your producer replication set. If the sys_class_name filter is missing, insert and update failures appear in Instance Data Replication > Replication Payload Error in the following scenarios:

    • A failed insert occurs when a record in the child table is replicated because the system attempts two inserts with the same sys_id to the parent table. Adding the sys_class_name filter to the parent prevents the unique key violation during the INSERT into the parent table.
    • A new record is added to a replicated child table on the producer instance. Instance Data Replication (IDR) initially creates the record in the parent table on the consumer, but not the child table. If the child record is changed on the producer instance, during replication a failed update occurs on the child table in the consumer instance because the record only exists in the parent table.

    If the table is a parent, decide if you want to replicate any of its child tables.

    • If you want to replicate one or more child tables, you must identify the sys_class_name value for the parent table, and then add a corresponding sys_class_name filter to the parent table.

      For example, Task Type is the label for sys_class_name on the Task [task] table. To start replicating the incidents in addition to tasks, you must add [Task Type] [is] [Task] to the outbound entry for the Task [task] table.

    • If you only want to replicate the parent table, the filter is optional.
    • If the parent table is already being replicated, you must edit the parent and add the sys_class_name filter.

    If the table is a child, decide if you want to replicate its parent.

    • If you want to replicate the parent table as well, you must identify the sys_class_name value for the parent table, and then add a corresponding sys_class_name filter to the parent table.

      For example, Task Type is the label for sys_class_name on the Task [task] table. To start replicating tasks in addition to incidents, you must add [Task Type] [is] [Task] to the outbound entry for the Task [task] table.

    • If you only want to replicate the child table, the filter is optional.
    • If one or more child tables are already being replicated, you must add the sys_class_name filter to the parent.