Hi @YePP rowing
Thank you for reaching out to Microsoft Q&A.
Based on the symptoms described, the behavior indicates that the MQTT broker is successfully accepting client connections, subscriptions, and publish operations, but messages are not being delivered to subscribers. This is confirmed by metrics showing Successful Published Messages > 0 while Successful Delivered Messages = 0. Since authentication (CONNECT), authorization (SUBACK), and message ingestion (PUBACK) are all functioning correctly, the issue is unlikely to be related to client configuration, topic syntax, or permissions. Instead, it strongly points to a breakdown in the internal routing and delivery pipeline of the Azure Event Grid MQTT broker. In such scenarios, messages enter the broker but fail to be routed to matching subscribers, which is not expected behavior. Additionally, the MQTT broker feature is currently in preview and may experience service-side regressions or transient issues that impact message delivery even when configuration appears correct.
Refer below points to resolve this issue or this is the workaround:
Validate Subscriber Session Stability
Ensure that subscriber clients remain continuously connected and are not frequently disconnecting. If sessions are unstable, the broker may not consider subscribers active during delivery, which can result in zero delivered messages even when publishes succeed. Check MQTT connection and disconnection logs to validate session health.
Test with Retained Messages to Isolate Routing Issues
Publish a message with the retain flag enabled:
retain = true
Then reconnect the subscriber. If the retained message is still not received, it confirms that the issue is not related to session timing but rather a failure in the broker’s routing or delivery layer.
Perform Cross-Validation with New Topic Space and Clients
Create a new topic space, new client groups, and use fresh publisher/subscriber connections with different client IDs. If the issue persists across completely new configurations, it rules out configuration corruption and further strengthens the likelihood of a namespace-level or platform-side issue.