The async queue replication code was setting frame flags incorrectly when there was an empty content frame (i.e. a content frame with content size equal to zero). This was incorrectly treated as not having a content frame at all so the end-of-frameset flag was incorrectly set on the header frame.
Such messages could not be replicated; the receiving broker would reject them as invalid AMQP.
The end-of-frameset flag setting takes account of whether there is a content frame, even if it is empty.
Such messages are sent as valid AMQP frames and replicate as expected.