Delimiter Characters Are Not Unique
The five HL7v2 delimiters (field, component, repetition, escape, subcomponent) must all differ. If two are the same, the parser cannot tell where one structural level ends and another begins.
HL7v2 · Error
The error
One or more delimiter characters are not uniqueWhy it happens
A typo in MSH-2, or a system that reused the field separator as a component separator. For example writing MSH|^|... reuses ^ in two roles.
How to fix it
Use five distinct characters. The conventional set is | (field) plus ^~\& (component, repetition, escape, subcomponent). Verify none of them collide.
Example
The snippet below triggers the error:
MSH|^^\&|SENDAPP|SENDFAC|RCVAPP|RCVFAC|20240115||ADT^A01|MSG001|P|2.5The corrected version:
MSH|^~\&|SENDAPP|SENDFAC|RCVAPP|RCVFAC|20240115||ADT^A01|MSG001|P|2.5Frequently asked questions
Why does duplicate delimiters break parsing?
HL7v2 is positional and delimiter-driven. If the component and subcomponent separators are identical, a value like A^B&C becomes ambiguous, so the parser cannot reliably build the field structure.
Related
- Open the HL7v2 Validator
- All validation errors
- Message Does Not Begin With an MSH Segment
- MSH-1 Field Separator Must Be Exactly One Character
- MSH-2 Encoding Characters Must Be Exactly 4 Characters
- Required Segment Is Missing
- Required Field Is Missing or Empty
- Segment Appears More Times Than Allowed
- Segment Is Not Defined in This HL7v2 Version
- Invalid Message Type and Trigger Event Combination