Search code examples
biztalkbiztalk-2016

Unable to read the stream produced by the pipeline - Parameter name: format


I have a BizTalk 2016 FP3 solution. Using the wizard, I've created a flat file schema for my send port, to assemble from xml to a fixed position text file.

When I run through BizTalk, I get a suspended instance with the following Error Information:

Unable to read the stream produced by the pipeline. 
 Details: Value cannot be null.
Parameter name: format 

So, I opened the message tab for the suspended message and copied the xml to a test file. I then ran this through the ffasm.exe tool, passing the path to my flat-file schema as the -bs parameter - the output from this tool was perfect, the exact flat file content I would expect.

On the send port (which contains only the Microsoft Flat file assembler components), I have populated as the "DocumentSpecName" property with the required schematypename,assemblystrongname . This is not really required since BizTalk is able to determine the schema from the promoted namespace#rootnode , so I've tried without the property being set but still get the same result.


Solution

  • I'm afraid this is one that was fixed without me knowing how. The problem had been driving me nuts for hours so I went back to basics and created a new solution on a different dev VM - it worked! So, I returned back to my main dev VM and it the problem was no more. Now I don't believe in magic, so I'm sure I must have changed something but I've since tried to recreate the error by meddling with the input file and the flat-file schema and I haven't been able to.

    I have learned that using VS to "Generate Instance" of a flat-file for a given xml file is useless - it will produce a file but uses the xml element names as data. Better to use the FFAsm.exe that can be found in D:\Program Files (x86)\Microsoft BizTalk Server 2016\SDK\Utilities\PipelineTools

    Off to wrap a unit test around this now in case the bug strikes again.