MQTT cho phép người gửi đặt mức Chất lượng dịch vụ (QoS), cung cấp một số đảm bảo nhất định về việc có nhận được tin nhắn hay không (và liệu có cho phép trùng lặp hay không). Bài viết này từ HiveMQ nhấn mạnh vấn đề hạ cấp , trong đó một khách hàng có mức QoS thấp hơn sẽ không nhận được tin nhắn với sự đảm bảo mà người gửi yêu cầu:
Như đã nói, luồng QoS giữa máy khách xuất bản và đăng ký là hai thứ khác nhau cũng như QoS có thể khác nhau. Điều đó có nghĩa là mức QoS có thể khác với khách hàng A, người phát hành một thông báo và khách hàng B, người nhận được thông báo đã xuất bản. Giữa người gửi và người môi giới, QoS được xác định bởi người gửi. Khi người môi giới gửi tin nhắn đến tất cả các thuê bao, QoS của thuê bao từ khách hàng B được sử dụng.
MQTT có cung cấp một cách chỉ ra rằng việc hạ cấp này không được chấp nhận và thông điệp phải được gửi bằng cách sử dụng QoS yêu cầu của người gửi ban đầu không? Là tùy chọn duy nhất để đảm bảo rằng cả người gửi và người nhận đều có cài đặt QoS mong muốn trước khi truyền tin nhắn?