Scenario

Let's take an example scenario, you received a message via receive port called "Receive.Simple.Messaging.File" and it got suspended because there was no matching subscriptions found. In this case when you go and query for any instances, the result will be shown like this


Imagine now, someone goes and deletes the receive port "Receive.Simple.Messaging.File". In this case the instances will stay in the system (since it's historical record), but the reference to the receive port is now lost. When you go and query the instance now it will look as shown below


if you notice carefully, there is no name available for the service name and we also lost the name of the application.


Challenge

If the user is using BizTalk360 as a super user, then the behaviour of the system will be identical to what we have seen in BizTalk admin console above. But if the user is accessing BizTalk360 with limited access (say for example the user is given permission to work with "Simple.Messaging" application), then he or she will not see any records in the query result, because BizTalk360 user access policy is attached to application level and there is no application name to validate the instance in this case. 


Comment

This is not a typical scenario or to some extend you can treat it like a bug in the BizTalk admin console. Generally when there is some references you shouldn't really allow the user to delete that port. At the same time, you may want to give some flexibility.