Github user mtaylor commented on the issue: https://github.com/apache/activemq-artemis/pull/2392 There are two things at play here. AMQP raw protocol and extensions to AMQP that are broker specific. With AMQP raw, there is no such thing as a routing type (this is a broker concept). Therefore messages sent via AMQP to an address should be routed to any routing type currently configured on that address. If an address has a single routing type configured e.g. Multicast, the message should be routed there, it should not create a new routing type with Anycast, which is what is happening here. Artemis also implements the JMS AMQP extension, which enables additional functionality, one of which is the ability to define a sender destination type, i.e. Queue or Topic. These map to Address Anycast and Multicast respectively. In this case (with auto-create disabled), if an AMQP client using this extension e.g. QPID JMS client, sends explicitly sends to Anycast, but only a Multicast address exists, then an error should be returned. With auto-create enabled for both addresses and queues, the behaviour would be different, an Anycast address would be created and no error thrown. There is a special case here, when using the AMQP protocol raw (no extensions), so not specifying the routing type, and using auto create addresses. If the AMQP client sends to an address that does not exist, the broker has no way of know what type of routing type to create. In this case, the default routing type setting on the address setting is used. There's another case, which I think is what is happening here. If there exists a Mutlicast address the AMQP client raw sends here and the default routing type is Anycast with auto-create enabled. Instead of routing the message to the pre-existing routing type, it is instead trying to auto-create a new one.
---