If a selector is provided via a non-unicode string, an illegal binary value is sent on the wire. The selector filter type is explicitly defined as being a string typed value. Some AMQP servers (e.g. Artemis, ActiveMQ) reject or mishandle the illegal value, rightfully expecting to be sent a string.
In Python 2.x, this is an easy mistake to make, as strings are non-unicode by default. The solution for the client to convert Python binary types to unicode before sending on the wire to the server.