Share via

Azure Event Grid MQTT Broker: Successful publishes and subscriptions but zero delivered messages

Marvin Schwander 0 Reputation points
2026-05-29T10:13:14.2433333+00:00

Hello,

I am currently facing an issue with Azure Event Grid MQTT broker where messages are successfully published and subscriptions are accepted, but no messages are ever delivered to subscribers.


Environment / Setup

  • Azure Event Grid Namespace with MQTT broker enabled
  • Authentication via Thumbprint match
  • Two MQTT clients:
    • MQTT-CONTROL-PROD → Publisher
      • MQTT-LOCAL1-PROD → Subscriber
      • Tested using MQTTX
      • Both clients can successfully connect

Client Configuration

Subscriber

  • Authentication Name: MQTT-LOCAL1-PROD
  • Certificate CN: MQTT-LOCAL1-PROD
  • Validation: Thumbprint Match
  • Assigned to Client Group: test-subscribers

Publisher

  • Authentication Name: MQTT-CONTROL-PROD
  • Assigned to Client Group: test-publishers

Client Groups

test-subscribers:
authenticationName = "MQTT-LOCAL1-PROD"

test-publishers:
authenticationName = "MQTT-CONTROL-PROD"

Topic Space

Topic Space Templates:

test/{*}
test/#
test/+
mqttx/test

Permission Bindings

  • test-publishers → Topic Space test → Role: Publisher
  • test-subscribers → Topic Space test → Role: Subscriber

Observed Behavior

Publishing

  • Messages are successfully published (no errors)
  • Example topics:
test/1
test/2
...
test/10

Subscribing

  • Subscriber subscribes to exact same topics
  • No authorization errors (previously fixed)
  • Subscriptions are counted in metrics

Metrics (Azure Portal)

  • Successful Published Messages (sum): ~30 (other devices connected and are publishing, but without any successful subscription
  • Successful Subscription Operations (sum): ~7
  • Successful Delivered Messages: 0
  • ✅ No significant failed publishes
  • ✅ Connections stable

{A0C48FDE-8295-4A0A-BBE9-447490BF10A3}


Result

Despite:

  • Valid topic match
  • Successful subscriptions
  • No authorization errors
  • Active connections

👉 No messages are received by the subscriber


Expected Behavior

Messages published to topics like:

test/1

should be delivered to subscribers subscribed to:

test/1

Troubleshooting Steps Already Taken

  • Verified certificate configuration (Thumbprint matches correctly)
  • Tested with different topic filters
  • Reconnected clients multiple times
  • Confirmed subscriptions via metrics
  • Ensured correct Client Group mapping
  • Used simplified Topic Space definitions
  • Tested multiple publish events (40+ messages)

Key Question

Why are messages not delivered even though:

  • subscriptions are successful
    • topics match exactly
      • permissions are correctly assigned
      Is there any additional routing, matching, or internal behavior in Event Grid MQTT that could prevent delivery in this scenario?

Additional Observation

It seems that:

  • Publish and Subscribe work independently
  • But no delivery linkage exists between them

Is this expected behavior, or could this indicate:

  • a misconfiguration that is not obvious
  • or a potential issue with the Event Grid MQTT service / namespace state?

Request

Could you please help identify:

  1. Whether this setup is missing any required configuration
  2. If this behavior is expected under certain conditions
  3. Or if this might be a known issue/limitation/bugHello, I am currently facing an issue with Azure Event Grid MQTT broker where messages are successfully published and subscriptions are accepted, but no messages are ever delivered to subscribers.
Azure Event Grid
Azure Event Grid

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


2 answers

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

    Hello @Marvin Schwander ,

    Welcome to this Azure community forum.

    You have an issue with the Azure Eventgrid Namespace MQTT broker support.

    Although the broker follows the plain MQTT protocol requirements and the configuration is very flexible, debugging message reception can be a thing.

    I wrote a blog post in the past showing how to get a working environment.

    I would suggest trying of-the-shelf clients first, like MQTTX for sending and receiving messages.

    I can also recommend using MQTT Explorer for testing reception in general.

    One special thing is the client group assignment. Check this blog post showing how we can test the relationship between clients, client groups, topic spaces, and topics in one go.

    Last but not least, I would prevent overlap in topics during testing at first:

    aaa/#
    aaa/+
    

    These two overlap; I'm not sure what happens.

    • Is a message published on topic 'aaa/bb' ending up on both topics?
    • Do subscribers receive the same message twice?

    Keep it simple and have a working connection first before you experiment with more elaborate solutions.


    If this answer helps you, marking it as the accepted answer is appreciated. All community members with similar questions will benefit by doing so. Your contribution is highly appreciated.

    Was this answer helpful?


  2. AI answer

    2026-05-29T10:13:44.3266667+00:00

    The described behavior indicates that publish and subscribe operations are succeeding, but the broker isn’t matching those operations for delivery. In Azure Event Grid MQTT broker this is almost always caused by access control or topic-space configuration, not by an additional routing step.

    Based on the documented troubleshooting guidance, the following areas must be verified in this order:

    1. Client group membership and permissions
      • Ensure the subscriber client (MQTT-LOCAL1-PROD) is actually in the test-subscribers client group and the publisher (MQTT-CONTROL-PROD) is in test-publishers.
      • Confirm that the permission bindings grant publish permission for test-publishers and subscribe permission for test-subscribers on the same topic space. If the client group or topic space names differ even slightly from what’s used in bindings, messages won’t be delivered even though publishes and subscribes succeed.
      • If the client disconnects when publishing, or if the topic doesn’t exist in the configured topic space, the broker can drop messages. Verify that the topics test/1, test/2, … are actually covered by the topic space bound to test-publishers and test-subscribers.
    2. Topic space coverage of subscriptions
      • The broker only delivers messages when the subscribed topics are included in the topic space to which the client has subscribe access. Ensure that the subscription filters (for example test/1) are within the topic templates configured in the test topic space.
      • If the subscriber is using patterns like test/# or test/+, verify that these patterns are allowed by the topic space configuration and not filtered out.
    3. Message size and expiry
      • If a maximum message size is configured, messages larger than this limit can be rejected for delivery while still counting as successful publishes. Verify that the payload size is within the configured limits.
      • If a message expiry interval is configured and is too short relative to the subscriber’s connectivity pattern, messages can expire before being delivered.
    4. QoS and acknowledgments
      • Use QoS 1 to have the service guarantee at-least-once delivery.
      • Ensure the subscriber acknowledges messages. If acknowledgments aren’t received, the service stops sending messages to that client after 16 unacknowledged messages, which results in zero delivered messages despite successful publishes.
    5. Routing to endpoints (if applicable)
      • If MQTT messages are also being routed to Event Grid topics or other endpoints, verify that the Data Sender role is enabled on the routing topic and that CloudEvent schema v1.0 is used. Misconfigured routing can cause messages not to appear at downstream endpoints even though they are published successfully.
    6. Namespace and client lifecycle
      • Confirm the namespace is healthy and available in the region.
      • Configure MQTT client life-cycle events to capture disconnect reasons and verify that clients remain connected during publish/subscribe operations.

    If, after validating:

    • client group membership,
    • permission bindings,
    • topic space coverage,
    • message size/expiry,
    • QoS and acknowledgments,

    there are still zero “Successful Delivered Messages” while “Successful Published Messages” and “Successful Subscription Operations” continue to increase, this indicates a service-side issue. In that case, capture metrics and logs and open a support ticket so the Event Grid team can inspect the namespace state.


    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.