• DI means that only the target service has issued an END CONVERSATION.

    In a conversation, both the initiator and the target must call END CONVERSATION. That means that you need to handle message types 'http://schemas.microsoft.com/SQL/ServiceBroker/EndDialog' and 'http://schemas.microsoft.com/SQL/ServiceBroker/Error' and respond with an END CONVERSATION when one of these messages are received. This must be handled by both initiator and target.

    How are you receving and processing messages? Using activation procedures, or in some other way?