With durable subscriber first time the connection is requested, it gets created and the clientId set on the connection. This call to the setClientID in the ActiveMQConnection.class checks isConnectionInfoSentToBroker which at this point is false. The clientId is successfully set on the connection and and connectionInfo sent to the broker (with the isConnectionInfoSentToBroker set to true) and the connection returned for use by the caller.Second time the connection is requested, the pooled connection is returned, the setClientID is called, but this time an exception is thrown as the isConnectionInfoSentToBroker is true. This is the issue we are seeing the failure on with the text "Setting clientID on a used Connection is not allowed". This implies that AMQ would assume the clientId would be tied to the connection, but unless that is part of the matchManagedConnection criteria then that would not be the case.