0
votes

I've been getting the following error in a production environment. Please refer the error in the bottom. So far I was able to recreate the problem by letting the orchestration suspend by forcing a db timeout in the application db call, and resuming the instance. After repeating the action for 2 rounds on the same instance, third time the instance will get suspended with the error below. What could be the reason for this behavior?

BizTalk Error

Uncaught exception (see the 'inner exception' below) has suspended an instance of service '{ORCHESTRATION NAME}(57adc083-7423-2bff-bd2d-ca813b8c0f4e)'. 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. InstanceId: 1bca1f03-7780-4f45-af2e-020724c8a92d Shape name: ShapeId: Exception thrown from: segment -1, progress -1 Inner exception: Unable to process exec message. Exception type: Exception Source: Microsoft.XLANGs.BizTalk.Engine Target Site: System.Object[] get_Args() The following is a stack trace that identifies the location where the exception occured

at Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.get_Args() at {ORCHESTRATION NAME}.segment1(StopConditions stopOn) at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception& exp)

Stack trace

xlang/s engine event log entry: Failed while delivering a message to a service instance. Message details follow. Message ID: 61eaa7fc-ac85-42d9-bf3e-1bed258b82be Service Instance ID: 1bca1f03-7780-4f45-af2e-020724c8a92d Service Type ID: 57adc083-7423-2bff-bd2d-ca813b8c0f4e Subscription ID: 00000000-0000-0000-0000-000000000000 Body part name: Service type: {ORCHESTRATION NAME}, {Assembly Details}

Exception type: BTXMessageDeliveryException The following is a stack trace that identifies the location where the exception occured

at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid& instanceId, Guid& serviceId, IBTMessage currentMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] messages, Int32 firstIdx, Int32 count) at Microsoft.BizTalk.XLANGs.BTXEngine.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object objMsg)

Additional error information:

    Failed while delivering a message to a service instance. Message details follow. Message ID:

61eaa7fc-ac85-42d9-bf3e-1bed258b82be Service Instance ID: 1bca1f03-7780-4f45-af2e-020724c8a92d Service Type ID: 57adc083-7423-2bff-bd2d-ca813b8c0f4e Subscription ID: 00000000-0000-0000-0000-000000000000 Body part name: Service type: {ORCHESTRATION NAME}, {Assembly Details}

Exception type: BTXMessageDeliveryException Source: Microsoft.XLANGs.BizTalk.Engine Target Site: Void DeliverMessage(System.Guid, Microsoft.BizTalk.Agent.Interop.IBTMessage, Boolean ByRef) The following is a stack trace that identifies the location where the exception occured

at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._tryReceiveOneMessage(Boolean& loggedError, Guid& instanceId, IBTMessage currMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid& instanceId, Guid& serviceId, IBTMessage currentMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] messages, Int32 firstIdx, Int32 count) at Microsoft.BizTalk.XLANGs.BTXEngine.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object objMsg)

Additional error information:

    The XLANG/s message has no part at index '0'.  The total number of parts found in the message is '0'. If you expect a multipart

message, check that the pipeline supports multipart messages such as MIME.

Exception type: MissingPartException Source: Microsoft.XLANGs.BizTalk.Engine Target Site: Void ReadMessageState(Microsoft.XLANGs.Core.Envelope, Microsoft.XLANGs.BaseTypes.XLANGMessage) The following is a stack trace that identifies the location where the exception occured

at Microsoft.BizTalk.XLANGs.BTXEngine.BTXXlangStore.ReadMessageState(Envelope env, XLANGMessage msg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.ArgsFromExecEnvelope(IBTMessage msg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.DeliverMessageImpl2(Guid subscriptionId, IBTMessage msg, Boolean& receiveCompleted) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXService.DeliverMessage(Guid subscriptionId, IBTMessage msg, Boolean& receiveCompleted)

1
What do you see in the event log? There's likely more details there about the exception and the full stack trace. There also might be more helpful event log messages immediately before this error. - Dan Field
Hi Dan, I have added the stack trace to the description. Thanks for your interest. - Nisal Wickramage
The error message normally indicates an issue with the incoming message. Are you using a custom pipeline or pipeline component? If so, please review your logic there. Pipeline components need to make sure to return a valid XLANG message. - Pieter Vandenheede
This orchestration is initiated from another orchestration from a start orchestration shape. I doubt that there is a problem with a message. Because according to how i recreated the exception in dev PC, issue only occurs after I let the instance get suspended and resume it for couple of times. - Nisal Wickramage
The exception is indicating that the message is empty. Turn on tracking and look in your tracked message events. - Dan Field

1 Answers

0
votes

Received this myself. Not sure what you were doing when you started receiving it. For me, I had a working orchestration and then added a correlation set. I use BTDF so simply updated the GAC only with new orchestration when I really should've done a full re-deploy (I know, lazy.).

Anyway, once I did redeploy fully, cycle hosts, and retest it worked fine.

Probably not answer you are looking for but it helped me. Here was my stack trace:

Exception type: BTXMessageDeliveryException Source: Microsoft.XLANGs.BizTalk.Engine Target Site: Void DeliverMessage(System.Guid, Microsoft.BizTalk.Agent.Interop.IBTMessage, Boolean ByRef) The following is a stack trace that identifies the location where the exception occured

at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._tryReceiveOneMessage(Boolean& loggedError, Guid& instanceId, IBTMessage currMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession._receiveOneMessage(Guid& instanceId, Guid& serviceId, IBTMessage currentMsg) at Microsoft.BizTalk.XLANGs.BTXEngine.BTXSession.ReceiveMessages(IBTMessage[] messages, Int32 firstIdx, Int32 count) at Microsoft.BizTalk.XLANGs.BTXEngine.AppDomains.AppDomainRoot.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object objMsg) at Microsoft.XLANGs.BizTalk.CrossProcess.AppDomainStubProxy.Microsoft.XLANGs.BizTalk.ProcessInterface.IAppDomainStub.ReceiveMessages(Object msgs)

Additional error information:

    Index was outside the bounds of the array.