Free ยท runs on your own machine

Resubmit dead-lettered messages in seconds

A free, local web UI for Azure Service Bus. Browse queues and subscriptions, peek messages, and resubmit or purge the dead-letter queue. Runs in Docker on Mac, Linux and Windows.

Start it with Docker
docker run -d --name service-bus-inspector --restart unless-stopped -p 127.0.0.1:8686:8080 -v service-bus-inspector:/data sroosen/service-bus-inspector:latest

Then open http://localhost:8686 and add a connection string. No account, no sign-up.

Animation: a dead-lettered order is opened, its currency is corrected from EURO to EUR, and it is resubmitted to the orders queue.

It runs in your browser, with all your namespaces side by side.

What it does

See where messages pile up

Every queue, topic and subscription of a namespace in one list, with its active, dead-letter and scheduled counts. Search, sort and filter on those counts to find the queue that is in trouble.

The queue list of a namespace, sorted on dead-letter count: payments 37, orders 14, invoices 3.

Read what is in the queue

Peek active and dead-lettered messages without taking them off the queue. Open one to see its body, its properties and why it was dead-lettered. Pick fields from the JSON body as columns, so you can tell the messages apart in the list.

A dead-lettered message with its reason, ValidationFailed, and its JSON body.

Resubmit one message, or the whole dead-letter queue

Send dead-lettered messages back to their queue: one at a time, or all of them in one go. Fix a message first by editing its body and application properties. Keep the message ID or give it a new one.

A resubmit sends the copy first and removes the original after. If something stops halfway you can get a duplicate, never a lost message.

The edit and resubmit dialog with the body and the application properties of a message.

Purge, and watch long jobs finish

Empty a queue or its dead-letter queue. The confirmation names the queue and the number of messages before anything is removed.

Resubmits and purges run as background jobs. A panel shows their progress, lets you stop one, and keeps what each job did.

The jobs panel with a completed resubmit job.

Is it safe to paste a connection string?

You are giving a tool a key to your namespace, so here is exactly what happens to it.

  • It stays on your machine

    The app runs in a container on your computer. There is no hosted service and no account.

  • No telemetry

    The container connects to the namespaces you add and to nothing else. It reports no usage and no errors to us.

  • Encrypted, in your own volume

    Connection strings are stored encrypted in a Docker volume on your machine. They are never sent back to the browser.

  • Only reachable from localhost

    The docker run line binds to 127.0.0.1, so nobody else on your network can open it.

What it does not do

  • It has no sign-in. Keep the 127.0.0.1: in the run command. Without it, anyone who can reach your machine can read, purge and resubmit messages on every namespace you added.
  • The key needs Manage rights. Listing queues and their counts requires it. Connection strings only; signing in with Entra ID is not supported yet.
  • Messages are for queues only, for now. Topics and subscriptions show their counts, but you cannot peek or resubmit their messages yet.
  • The volume is a secret. The keys that decrypt your connection strings live in the same Docker volume. Whoever can use Docker on your machine can read them. Do not copy or share the volume.
  • It does not manage entities. You cannot create, change or delete queues, topics or subscriptions.
Updating or removing it

An update stops a running job halfway and empties the job history, so check the jobs panel first. Your connections are kept.

Update
docker pull sroosen/service-bus-inspector:latest && docker rm -f service-bus-inspector

Then run the start command again. To remove your stored connections for good:

Remove stored data
docker volume rm service-bus-inspector