Published July 21, 2026
To repair and resubmit an Azure Service Bus dead-letter queue message, open the queue or subscription's Deadletter subqueue in QueueExplorer, inspect its dead-letter reason, body, and properties, save a backup, correct the payload or the underlying system fault, and send a new message to the original queue or parent topic. Verify that the new message succeeds before removing the original from the DLQ.
Resubmission is not an in-place state change. Azure Service Bus creates a new active message with a new Sequence Number, Enqueued Time, and delivery state. The dead-lettered copy remains in the DLQ until it is explicitly settled or deleted.
Every queue and every subscription has its own DLQ; there is no single namespace-wide dead-letter queue. A topic does not have a topic-level DLQ because the stored copies belong to its subscriptions. Microsoft documents the standard paths and behavior in its Azure Service Bus DLQ guide.
Free trial for Windows, macOS, and Linux
Inspect the Dead Letter Reason and Dead Letter Description first, then compare the failed message with a message that the consumer processed successfully. Review the body encoding, Content Type, schema version, Message ID, Correlation ID, Session ID, TTL, application properties, Delivery Count, and enqueue time.
| Reason or symptom | What to investigate before resubmitting |
|---|---|
MaxDeliveryCountExceeded |
Consumer exceptions, lock expiry, repeated abandon, long processing, dependencies, and idempotency |
TTLExpiredException |
Backlog age, entity TTL, message TTL, consumer capacity, and whether stale work is still valid |
Session ID is null |
The required Session ID and the correct ordered processing group |
HeaderSizeExceeded |
Oversized application properties or headers; remove unnecessary data rather than truncating blindly |
MaxTransferHopCountExceeded |
Auto-forwarding loops or chains that exceed the supported transfer-hop limit |
| Application-defined reason | Consumer validation, schema, authentication, business rule, and exception details |
For transfer DLQ messages, inspect the source entity's forwarding configuration and the destination's existence, status, capacity, and permissions. Replaying into the same broken route only recreates the transfer failure.
Do not automatically resubmit every DLQ message. Archive or delete a reviewed message instead when it represents expired business work, an unsupported schema, a permanently rejected command, a duplicate whose effect already occurred, malicious input, or data that policy requires you not to process.
.mq format before changing it.Changing a payload to make deserialization pass is not enough if it changes business meaning. Validate the repaired body against the producer and consumer schema, retain an audit copy, and obtain the appropriate approval for financial, personal, or security-sensitive messages.
You can also use copy/paste, drag-and-drop, or a saved .mq file for reviewed selections. Whichever UI
workflow you choose, the broker operation is logically a new send followed by settlement of the old DLQ message;
it is not the original broker record returning to active state.
A topic subscription is a receive-only endpoint. Azure Service Bus does not provide a send operation that targets a subscription, nor an operation that moves a DLQ message directly back into the active part of that subscription. To use the normal messaging path again, QueueExplorer must send the repaired message to the parent topic.
Service Bus treats that send as a new publication and evaluates the current rules for every subscription on the topic:
Before resubmitting a subscription DLQ message:
If copies in other subscriptions are unacceptable, do not publish the message to the parent topic. Use an isolated recovery queue, a dedicated replay endpoint, or an application-specific repair process that invokes only the intended consumer. Those are alternative recovery paths; they do not restore the message to the original subscription.
| Data | Resubmitted message |
|---|---|
| Body and application properties | Can be preserved or deliberately repaired |
| Message ID and correlation fields | Can be preserved, subject to duplicate detection |
| Session ID | Must be valid and determines the processing session |
| Sequence Number and Enqueued Time | Assigned again by the destination |
| Delivery Count and lock state | Recreated by the destination; the original receive state is not copied |
| Dead-letter reason and description | Keep them in the incident record; the new active copy is not dead-lettered |
If duplicate detection is enabled, sending a preserved Message ID inside its configured history window can report success while Azure Service Bus discards the new copy. Microsoft documents that only the Message ID, together with the partition key in applicable configurations, is used for duplicate detection. Verify that a destination copy actually exists.
For a recurring or large-scale recovery process, use a purpose-built replay service with checkpoints, idempotency, rate control, structured audit records, and current Azure Service Bus SDKs. A desktop workflow is best for controlled investigations and selected-message repair.
You can resubmit its data as a new message to the original queue. Azure Service Bus does not change the existing dead-lettered record back to active state; settle that original after the new copy is verified.
No. Subscriptions are receive-only. Resubmitting through the parent topic evaluates every subscription's current rules and can create copies outside the original subscription. If that fan-out is unacceptable, use a separate recovery path rather than the normal topic route.
Yes. QueueExplorer can display and edit the body and applicable properties before sending a repaired copy. Keep a backup and preserve an audit record of the original.
No. Microsoft documents that TTL is not observed in the DLQ and that there is no automatic DLQ cleanup. Messages remain until a receiver explicitly settles them.
It may have been consumed quickly, routed to one or more topic subscriptions, dead-lettered again, or suppressed by duplicate detection because its Message ID was still inside the detection window. Check the active count, every relevant subscription, consumer logs, DLQ, and duplicate-detection configuration.
Increase it only when normal processing legitimately needs more delivery attempts. A larger value does not fix a deterministic poison message and can waste resources or delay diagnosis.
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.