I've been doing some changes to a BizTalk application lately, all has been going well, I moved it from development to the Test environment and the application I was working on still works nicely.
The problem is, suddenly an existing application, whenever it receives an HL7 message gets the following error:
Fatal error encountered in 2XDasm. Exception information is Object reference not set to an instance of an object.
Followed by:
There was a failure executing the receive pipeline: "BTAHL72XPipelines.BTAHL72XReceivePipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "BTAHL7 2.X Disassembler" Receive Port: "RP.MyPort.HL7v2.ORU" URI: "0.0.0.0:11001" Reason: Object reference not set to an instance of an object.
Followed again by:
A message received by adapter "MLLP" on receive location "RPL.MyLocation.HL7v2.ORU.MLLP" with URI "0.0.0.0:11001" is suspended.
Error details: There was a failure executing the receive pipeline: "BTAHL72XPipelines.BTAHL72XReceivePipeline, BTAHL72XPipelines, Version=1.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Source: "BTAHL7 2.X Disassembler" Receive Port: "RP.MyPort.HL7v2.ORU" URI: "0.0.0.0:11001" Reason: Object reference not set to an instance of an object.
MessageId: {7B940750-046A-4E63-9268-EF76F6458CFE}
InstanceID: {5FC204B1-69DE-433E-B90B-AB1E9F77B3B7}
The only difference between these two applications is that the one that works is using a custom Pipeline component whereas the one that is erroring is using the default BizTalk BTAHL72XReceivePipeline (as you can probably see by the error.)
Has anyone experience this? I've seen a couple posts on random sites with people having the error, but nothing that relates to mine.
Well I found the answer. Very bittersweet.
At some point I must have been messing with the EncodingCharset on my receive location in development. I didn't touch that location for months, then when I moved to test, I copied over the bindings and as well as the bad EncodingCharset.
It turned out that I had an empty EncodingCharset in the BTAHL72xReceivePipeline configuration. As soon as I set to ",0" then things worked again.
Here's an image to what I'm talking about.