TL:DR- Aborted queued messages to purge them.

I had the same problem trying to purge our development namespace so we could flush it clean for fresh unit test messages.

Messages still in progress will not be deleted. That means if there is a single message queued on one of the interfaces, all messages related to it will not be purged. Abort the queued message, and purge will work.

For example, one of our ADT messages goes to 15 different interfaces. One of the 15 is disabled and queued the message. That locks all 15 messages from being purged as technically, the production isn't fully resolved.

Solved the problem. In the subtransforms <transform ... > header, set "create" to equal 'existing'. By default if it's not specified it makes it mean 'new'.

Link to the documentation: https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY...

Example:

<transform sourceClass='EnsLib.HL7.Segment' targetClass='EnsLib.HL7.Segment' sourceDocType='2.4:PRD' targetDocType='2.4:PV1' create='existing' language='objectscript' >