The same order, invoice, or record appears twice in the target system, often minutes apart.
Most likely causes
- A retry after a response that was lost, not failed. The target processed the message and the acknowledgement never came back, so the integration sent it again. This is the usual cause and the easiest to misdiagnose, because both attempts genuinely succeeded.
- Two schedules overlapping. A run that takes longer than its interval will overlap the next one and reprocess the same source rows.
- The source query has no watermark. Selecting on a status that the integration does not update leaves the same rows eligible forever.
The durable fix
Make the target reject a duplicate rather than making the sender promise not to send one. A unique key on a business identifier in the target survives every retry, timeout, and overlapping schedule; a sender that tries not to repeat itself does not, because it cannot tell a lost response from a failed one.
What to check
- Whether the two records carry the same source identifier — that confirms a retry rather than genuine double entry.
- Run history for overlapping executions.
- Whether the integration marks source rows as processed, and whether that marking is inside the same unit of work as the send.
If none of the above explains it, raise a ticket and include what you checked. Reading this article cost you no hours.
