EMQX Retained Messages Not Working
DodaTech
Updated 2026-06-26
1 min read
In this tutorial, you'll learn about EMQX Retained Messages Not Working. We cover key concepts, practical examples, and best practices.
The Problem
Clients do not receive retained messages when subscribing.
Quick Fix
Wrong
mqttx pub -t sensor/temp -m '25.5' # No retain flag set
New subscribers do not receive last known value.
Right
# 1. Publish with retain flag
mqttx pub -t sensor/temp -m '25.5' -r
# 2. Verify retained message
mqttx sub -t sensor/temp --retain-only
# 3. Check EMQX retained message store
curl -u admin:public http://localhost:18083/api/v5/messages/retained/sensor/temp
# 4. Subscribe (new subscriber gets retained value)
mqttx sub -t sensor/temp -v
Subscriber immediately receives "25.5" with retain flag set.
Prevention
Set retain flag on PUBLISH to store the message. Retained messages survive broker restarts (persisted by default). Publish empty payload with retain=true to clear a retained message. Retained messages use QoS 1 by default. Configure max retained messages in emqx.conf: mqtt.retained.max_count.
DodaTech engineers apply these same patterns across Doda Browser, DodaZIP, and Durga Antivirus Pro for production IoT reliability.
FAQ
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro