MQTT pozwala nadawcom ustawić poziom jakości usługi (QoS), który zapewnia pewne gwarancje dotyczące tego, czy wiadomość zostanie odebrana (i czy dozwolone są duplikaty). W tym artykule z HiveMQ podkreślono problem obniżenia poziomu , w którym klient o niższym poziomie QoS nie otrzyma wiadomości z gwarancjami, o które poprosił nadawca:
Jak już wspomniano, przepływy QoS między klientem publikującym a subskrybującym to dwie różne rzeczy, a QoS może być inna. Oznacza to, że poziom QoS może różnić się od klienta A, który publikuje wiadomość, i klienta B, który odbiera opublikowaną wiadomość. QoS między nadawcą a brokerem jest definiowany przez nadawcę. Gdy broker wysyła komunikat do wszystkich subskrybentów, używana jest QoS subskrypcji od klienta B.
Czy MQTT zapewnia sposób wskazania, że to obniżenie wersji jest niedopuszczalne i że wiadomość musi zostać dostarczona przy użyciu żądanej QoS pierwotnego nadawcy? Czy jedyną opcją jest upewnienie się, że zarówno nadawca, jak i odbiorca mają żądane ustawienie QoS przed przesłaniem wiadomości?