Okay, so the scenario is this:
– Generated schemas from a webservice, this created a request schema, a response schema, and a schema with complex types used in the schemas
– Two promoted fields in the response message (an error code and description)
– An orchestration which sends out the request, receives the response, and uses a decide shape to create an email message if the response error code is something other than 0
So after deploying everything, and running a test, the orchestration got suspended with an error message like this:
xlang/s engine event log entry: Uncaught exception (see the ‘inner exception’ below) has suspended an instance of service ‘Acme.BizTalk.System.Orchestrations.ImportProduct(dcfd4fa0-976a-7a77-4aec-0b9cbc3c9200)’.
The service instance will remain suspended until administratively resumed or terminated.
If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.
Shape name: DecideShape_CheckResult
Exception thrown from: segment 1, progress 16
Inner exception: Object reference not set to an instance of an object.
So the problem turned out to be, the distinguished fields don’t get filled, even though the message itself looks just fine. After some digging around I found out the problem was in the Element FormDefault properties, but not just on the response message, but also on the schema which has the complex types defined. On both of these schemas, I had to set the Element FormDefault property to Qualified. After having done a new deployment, everything now works.