Share via

Azure Event Grid MQTT Broker: Successful Published Messages > 0 but Successful Delivered Messages = 0

TA dev 5 Reputation points
2026-05-13T02:40:31.4333333+00:00

Environment:

  • Service: Azure Event Grid Namespace
  • Protocol: MQTT v5
  • Issue: Full message delivery outage — publishes accepted but never delivered to subscribers

Symptoms:

  • MQTT clients connect successfully
  • Subscriptions accepted (SUBACK granted: 0)
  • Publishes accepted (PUBACK reason code: 0)
  • Metrics show Successful Published Messages > 0
  • Metrics show Successful Delivered Messages = 0
  • No messages received on any subscriber
  • Dropped sessions observed in monitoring

What I have verified:

  • Topic spaces exist and templates match the published topic
  • Permission bindings exist for both Publisher and Subscriber on the topic space
  • Client groups are correctly configured
  • Reproduced with MQTTX desktop using two separate connections with different Client IDs
  • No configuration changes were made before the issue started

Question:

Is anyone else experiencing zero message delivery on the Event Grid MQTT broker recently? Given that publishes are accepted and subscriptions are granted but delivered messages = 0, this appears to be a broker-side internal routing issue. Has there been a platform change that could have caused this?

Any guidance from the Event Grid team would be appreciated.

Azure Event Grid
Azure Event Grid

An Azure event routing service designed for high availability, consistent performance, and dynamic scale.


3 answers

Sort by: Most helpful
  1. Sander van de Velde | MVP 37,066 Reputation points MVP
    2026-05-13T11:02:52.26+00:00

    Hello @TA dev ,

    welcome to this community forum.

    It seems there is an outage causing the behavior you see.

    Please track this thread too to see if this is fixed.

    I checked the Azure Health status page and it seems to be fixed?


    If the response helped, do "Accept Answer". If it doesn't work, please let us know the progress. All community members with similar issues will benefit by doing so. Your contribution is highly appreciated.

    Was this answer helpful?

    0 comments No comments

  2. Siddhesh Desai 7,160 Reputation points Microsoft External Staff Moderator
    2026-05-13T03:24:24.02+00:00

    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.

    Was this answer helpful?


  3. AI answer

    2026-05-13T02:40:53.88+00:00

    The described symptoms match a broker-side routing or delivery issue, not a client misconfiguration, given that:

    • MQTT connections succeed.
    • Subscriptions are accepted (SUBACK granted).
    • Publishes are accepted (PUBACK success).
    • MQTT: Successful Published Messages > 0.
    • MQTT: Successful Delivered Messages = 0.
    • No subscribers receive messages.

    From the available guidance, the following checks and diagnostics are supported:

    1. Verify publish/subscribe access and topic spaces
      • Confirm that the client groups used by publishers and subscribers are correctly configured and that:
        • The client belongs to the correct client group (if not using $all).
        • The client group has publish or subscribe permissions configured to the correct topic spaces.
      • Ensure that the topics being subscribed to are included in the topic space to which the client has subscribe access.
      • If response topics are used, ensure subscribers are listening on the response topics before publishing on the request topic.
      These checks are explicitly called out for scenarios where clients connect and publish but do not receive messages.
    2. Check message size, expiry, and QoS behavior
      • If a maximum message size is configured, ensure published messages meet the size requirements of the subscribing client.
      • Ensure the message expiry interval is appropriate for the connectivity pattern so messages are not expiring before delivery.
      • Use QoS 1 and ensure clients send acknowledgments; if acknowledgments are not received, the service stops sending messages after 16 unacknowledged messages.
    3. Inspect MQTT metrics for delivery and throttling issues
      • Review the following metrics on the Event Grid namespace:
        • MQTT.SuccessfulPublishedMessages and MQTT.FailedPublishedMessages to confirm that publishes are succeeding and not being rejected for specific errors.
        • MQTT.SuccessfulDeliveredMessages to confirm that the broker is not reporting any deliveries.
        • MQTT.ThrottlingEnforcements to see if throttling is being enforced.
        • MQTT.RequestCount, MQTT.SuccessfulSubscriptionOperations, and MQTT.FailedSubscriptionOperations to verify that subscription operations are being accepted and not failing for some filters.
        • Mqtt.DroppedSessions and its DropReason dimension to understand why sessions are being dropped (for example, AuthorizationError, SessionOverflow, or session expiry).
    4. Use resource logs to identify failed publish or subscription operations
      • Enable and inspect the MQTT broker diagnostic logs for:
        • Failed MQTT published messages (EventGridNamespaceFailedMqttPublishedMessages), which show:
          • topicName, qos, protocol, and resultDescription for failed publishes or deliveries.
        • Failed MQTT subscription operations (EventGridNamespaceFailedMqttSubscriptions), which log each topic filter that fails.
      • Also review common log properties such as operationName, category, resultType, resultSignature, and resultDescription to identify whether the broker is rejecting operations due to quota, authentication, or authorization errors.
    5. Check routing to downstream endpoints (if applicable)
      • If MQTT messages are being routed to other endpoints via Event Grid routing:
        • Ensure the Data Sender role is enabled on the routing topic.
        • Confirm that CloudEvent Schema v1.0 is used for routing.
        • Verify that routing filters are not dropping the data.
        • For HTTP publish scenarios, verify that topics are percent-encoded and that the correct namespace is used.
    6. Confirm broker health and internal routing via metrics and logs
      • For suspected internal routing issues (publishes accepted but no deliveries and no obvious configuration errors), the supported approach is:
        • Use metrics such as MQTT.SuccessfulDeliveredMessages, Mqtt.SuccessfulPublishLatencyInMilliseconds, and Mqtt.SuccessfulConnectLatencyInMilliseconds to understand whether the broker is processing messages and acknowledgments as expected.
        • Use resource logs to see if there are systematic failures or throttling at publish or subscription time.

    If metrics and logs confirm that:

    • Publishes are succeeding (MQTT.SuccessfulPublishedMessages increasing, no corresponding MQTT.FailedPublishedMessages with meaningful resultDescription),
    • Subscriptions are accepted (MQTT.SuccessfulSubscriptionOperations increasing, minimal MQTT.FailedSubscriptionOperations), and
    • MQTT.SuccessfulDeliveredMessages remains at 0 despite active subscribers,

    then the behavior is consistent with a broker-side issue rather than configuration. In that case, the next supported step is to collect:

    • Relevant metrics snapshots (including Mqtt.DroppedSessions with DropReason),
    • Diagnostic log excerpts for failed publishes/subscriptions (including resultSignature and resultDescription),

    and open a support case so the Event Grid team can investigate the namespace-specific routing behavior.


    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.