Harris Kristanto
3 min readOct 9, 2024

“U” is The Problem — Troubleshooting “Invalid Character” Error in X12 Logic Apps

Introduction

While working with an Azure Logic Apps that processes X12 EDI messages, you might encounter unexpected serialization errors. I recently faced an issue when trying to encode an X12 810 message using the “Encode to X12 message by agreement name” action.

Specifically, a validation error was thrown when a capital “U” was present in the PID05 field.

This error occurred when I was trying to encode the message via the “Encode to X12 message by agreement name” action. The payload I was trying to process looked perfectly fine at first glance:

<ns0:PIDLoop1>
<ns0:PID_2>
<PID01>F</PID01>
<PID05>APPLE DICED POUCH - 3.2 KG (3 PKT)</PID05>
</ns0:PID_2>
</ns0:PIDLoop1>

The PID05 field, which contains the description of the product, seemed to have valid data—there were no special characters, only uppercase letters, numbers, and punctuation.

Identifying the Problem

After experimenting with different inputs, I realized that the error was specifically triggered when the description included the capital letter “U”. Strangely, using a lowercase “u” in the same position worked fine and passed validation. The “U” character was causing the X12 encoder to flag it as an invalid character.

First, I verified that the X12 schema used the X12_AN (alphanumeric) data type for the PID05 element. The definition allowed for any alphanumeric characters between 1 and 80 in length, which should include capital "U". However, the error persisted, indicating something deeper was at play.

I also ensured that none of the delimiters (such as *, ~, or :, depending on configuration) were interfering with the data in PID05. There were no issues related to delimiters.

The Fix

When looking at the X12 agreement referenced by the logic app, I found a setting called useControlStandardIdAsRepetitionCharacter. This setting, when enabled, uses the control standard ID as the repetition character. The issue I was facing seemed to align with the fact that “U” was being treated as a repetition character instead of a standard alphanumeric character.

To resolve the issue, I changed the useControlStandardIdAsRepetitionCharacter setting to false. This prevented the system from interpreting "U" as a repetition character.

And now the message encodes fine in Logic Apps:

Interestingly, this issue isn’t new. It appears that BizTalk users have encountered similar problems dating back to earlier versions of BizTalk Server: https://stackoverflow.com/questions/6670976/biztalk-2009-invalid-character-in-data-element-error

Harris Kristanto
Harris Kristanto

Written by Harris Kristanto

System Integration and DevOps specialist working in the cloud with Microsoft Azure and Dell Boomi. https://www.linkedin.com/in/mrkristanto/

No responses yet