MSH-10 in HL7 v2: A Field Guide to Message Control ID
MSH-10 is supposed to be unique across every message a sending system ever produces, and most of the time it is — until an interface engine restarts, a counter resets, and two completely different messages arrive carrying the same control ID.
MSH-10 is the tenth field of the MSH segment — a string meant to uniquely identify a given message, used by the receiving system to correlate acknowledgments and detect duplicate transmissions.
What this field contains
Example
The 10th field, MSG00001458, uniquely identifies this message for acknowledgment and duplicate-detection purposes. Synthetic message — not a real transmission.
Where this trips people up
Source systems that generate MSH-10 from an in-memory counter rather than a persisted sequence will restart that counter from its initial value after a service restart, which means a receiving system that treats MSH-10 as a reliable duplicate-detection key can start silently rejecting legitimate new messages because their control ID collides with one it already processed before the restart.