BizTalk and the Dreaded No Subscribers Found Message
At some point, everyone who's ever worked on a BizTalk application will encounter the "The published message could not be routed because no subscribers were found" error message. Like most BizTalk error messages, this can be caused by a variety of things. Your Send Ports might be listed, your Receive Shapes on the Orchestrations you've created might have an incorrect filter, or you simply might have forgotten about the filter completely.
Today's issue however, was none of those things. After going through and checking my Send and Receive Ports, double and triple checking my filter expressions, and even getting a Real BizTalk Person™ to sanity check what was going on, we were stumped.
In the course of googling that error because (because Developers™), I stumbled across a suggestion to check the actual recognised Subscriptions that had been deployed to BizTalk itself, from the Group Management console.
The Subscriptions in a given BizTalk environment can be accessed by creating a new query in the Group Management Console, and changing the "Search For" value to "Subscriptions" (and any other filters you might want), and clicking "Run Query". This returns a complete list of Subscriptions associated with the various BizTalk applications installed on the server, so anything that is responsible for creating a Subscription in BizTalk can be viewed here. Like, for instance, a Receive Message shape behaving badly.
In my instance, I'd had to change the filters and schema type on my Receive Shape at some point, as I'd realised that the schema being used was incorrect. On changing it to the correct values, it had somehow corrupted the Receive Shape on the designer, and had spat out an incorrect filter expression when creating the Subscription in BizTalk. So, I deleted and re-added the Recieve Shape, hooked it back up the MessageBox, and on deploying the changed Orchestration, it re-created the Subscription with the correct filter expressions. Huzzah!
Hope this helps some other poor developer out there dealing with the same issue :)