Hello,
When we receive a publish, normally we need to check if QoS is 1 and send a PUBACK. However, if we receive a PUBLISH while waiting for a different packet, the client will just print the data, without checking to see if PUBLISH was QoS 1 or not. For me, this caused the gateway to stop sending any new messages to the client.