Session-level rejects (35=3)
Tag appears more than once (373=13)
The same tag occurs twice outside a repeating group. Often the real cause is a repeating group the receiver does not recognise, so the fields of the second entry look like duplicates.
What it means
Outside repeating groups, each tag may appear once per message. Inside a group, fields repeat once per entry, and the NumInGroup counter before the group tells the receiver how many entries to expect.
If the counter is missing, or the receiver's dictionary does not define the group for this message, the receiver reads the second entry's fields as duplicates and rejects with 373=13.
Common causes
- Group entries sent without their NumInGroup counter, for example PartyID (448) entries without NoPartyIDs (453).
- A NumInGroup value lower than the number of entries actually sent.
- A repeating group that the counterparty's dictionary does not have for this message type or version.
- A gateway that adds a field (such as Account (1)) that was already present.
How to fix it
On the side that sent the message
- Send the NumInGroup counter before every repeating group and make it match the entries.
- Check that the group exists for this message in the counterparty's FIX version.
On the side that raised the error
- Make sure your dictionary defines the repeating groups your counterparties use.
- Name the repeated tag in RefTagID (371).
Example
Two Parties entries sent without the NoPartyIDs (453) counter.
1. Buy side: two 448 fields without 453
8=FIX.4.4|9=192|35=D|49=BUYSIDE|56=SELLSIDE|34=130|52=20261020-10:10:00.000|11=ORD-1001|21=1|55=MSFT|54=1|60=20261020-09:30:00.000|38=1000|40=2|44=187.50|59=0|448=TRADER1|447=D|452=11|448=CLIENT9|447=D|452=3|10=167|
2. Sell side: Reject, RefTagID 448
8=FIX.4.4|9=119|35=3|49=SELLSIDE|56=BUYSIDE|34=1120|52=20261020-10:10:00.002|45=130|371=448|372=D|373=13|58=Tag appears more than once|10=047|
SOH (0x01) is shown as |. BodyLength (9) and CheckSum (10) are calculated as if every | were SOH.
Open this example in the parserQuestions
- My group has a counter. Why is it still rejected?
- Usually because the receiver's dictionary does not define that group in this message. Without the definition the counter means nothing to it. Compare both dictionaries for the message type.