Updated July 21, 2026
To browse Azure Service Bus messages, connect QueueExplorer, expand the namespace, and select a queue or topic subscription. Messages load progressively into a grid where you can inspect bodies and properties, choose columns, sort the current view, and filter the messages already loaded.
QueueExplorer also exposes dead-letter, transfer, deferred, and scheduled messages. For session-enabled queues or subscriptions, it can group messages by Session ID. These locations and states need different handling, so first identify where the message currently lives.
QueueExplorer supports Microsoft Entra ID login directly. Enter the namespace and, when needed, the tenant ID, then choose Login. Authentication takes place in Microsoft's login dialogs outside QueueExplorer. QueueExplorer does not receive the user's password; it receives a token for the Service Bus operations allowed by that user's Azure roles.
Entra ID separates topology and message permissions. For a full namespace view, assign the Reader role at the namespace so QueueExplorer can enumerate queues, topics, and subscriptions. Reader alone does not grant message access. Add Azure Service Bus Data Receiver for browsing and receiving, Data Sender for sending, or Data Owner when broader Service Bus data access is required. Data roles can be scoped to the namespace or to individual queues and topics.
Data Receiver is not Peek-only: it also permits receiving and removing messages. Use QueueExplorer's browsing workflow when the investigation must remain non-destructive.
For a namespace-level SAS connection, QueueExplorer requires a policy with Manage access to discover queues, topics, and subscriptions. If full namespace enumeration is unnecessary, QueueExplorer can instead connect with a connection string scoped to one queue or topic; Listen permission is enough for read-only message browsing on that entity. Add only the further rights required for sending or management operations.
Azure Service Bus does not provide a separate Peek-only SAS right. Listen also permits receive and settlement operations, so use QueueExplorer's browsing workflow when the investigation must remain non-destructive.
Avoid using RootManageSharedAccessKey when a narrower namespace or entity policy will do. Store
connection strings as secrets and rotate them if they are exposed.
QueueExplorer can connect directly to the Azure Service Bus Emulator. Choose the emulator connection type and enter its host name. Change the AMQP and administration ports when the emulator does not use the defaults, such as when Aspire assigns dynamic host ports.
See the complete QueueExplorer Azure Service Bus connection guide for Entra ID, SAS, single-entity, tenant, role, emulator, filtering, and transport details. In every case, network rules must allow the computer running QueueExplorer to reach the namespace or emulator.
Expand Queues and click the required queue, or expand a topic and choose one of its subscriptions. A topic is a publishing endpoint; messages are normally consumed and inspected from the subscriptions that received a copy.
QueueExplorer begins loading messages progressively. Set a practical limit for a large production entity instead of loading the full backlog. The displayed count is a working view, not a transactionally consistent snapshot: publishers, consumers, expiration, forwarding, and dead-lettering can change the entity while you inspect it.
Free trial for Windows, macOS, and Linux
Select a row to see the message body and broker or application properties. Choose the viewer that matches the payload:
Add fields such as Sequence Number, Message ID, Correlation ID, Subject, Session ID, Delivery Count, Enqueued Time, Expires At, Content Type, and application properties as grid columns. The broker-assigned sequence number identifies the stored message within an entity; an application-supplied Message ID is useful for correlation but is not a server-side search index.
Click a column heading to sort the current view, then filter by body text, IDs, standard properties, or custom application properties. Sorting and filtering change only what QueueExplorer displays; they do not reorder the queue or alter the subscription.
Azure Service Bus does not provide a database-style full-text query over every message already stored in a queue or subscription. A filter can therefore find only messages QueueExplorer has loaded. Increase the load limit carefully when the first batch does not contain the target.
QueueExplorer Professional can extract values from JSON, XML, or text bodies with JSON expressions, XPath, or regular expressions. The extracted values become sortable and filterable columns, which is useful for locating an order number, tenant, event type, or other business key.
For a complete workflow and the limitations of scanning large entities, read how to search and filter Azure Service Bus messages.
| Message location or state | How it behaves | Where to inspect it |
|---|---|---|
| Active | Available for a normal receiver | The queue or topic subscription |
| Dead-lettered | Removed from normal delivery after failure, expiration, or explicit dead-lettering | The entity's Deadletter subqueue |
| Deferred | Still stored in the main entity but retrievable for processing only by sequence number | QueueExplorer's Deferred view |
| Scheduled | Not active until its scheduled enqueue time | QueueExplorer's Scheduled view; scheduled topic messages remain on the topic before enqueue time |
Read the dedicated guides for deferred messages, scheduled messages before changing those states.
Sessions are different: session support is configured on the queue or subscription and is not another message location or state. See the separate guide to inspecting and managing Azure Service Bus sessions.
Peek is intended for diagnostics. It returns message content without acquiring a lock and without allowing the client to complete, abandon, defer, dead-letter, or renew that peeked copy. Peek can include active, locked, deferred, scheduled, and not-yet-cleaned expired messages. To inspect dead-letter messages, browse the DLQ itself.
Receive modes are for processing:
See Microsoft's explanation of locks and settlement for the protocol details.
No. Azure Service Bus Peek is non-destructive. A later receive-based operation can remove or change a message, so keep the investigation separate from delete, move, defer, and dead-letter actions.
You can filter Message ID among messages loaded into QueueExplorer, but Azure Service Bus does not maintain a server-side query index over queued message IDs or bodies.
Applications normally inspect messages in a topic's subscriptions because each subscription stores its own matching copy. Scheduled messages remain at the topic until their scheduled time and require topic-level browsing to discover before then.
Peek is a diagnostic view of the broker log. Cleanup of expired messages is asynchronous, and a peeked snapshot does not expose a live receiver lock. A message returned by Peek may therefore no longer be available to a normal receiver.
See what is happening in Azure Service Bus and resolve message problems without writing one-off tools. Browse queues and topic subscriptions, inspect message contents, and manage your Azure Service Bus environment from one desktop application. Try it free on Windows, macOS, or Linux.