Resubmit messages from a dead letter queue back to the main queue or topic.
dotnet run -- resubmit-dlq -n <namespace> (-q <queue> | -t <topic> -s <subscription>) [options]| Option | Short | Description |
|---|---|---|
--namespace |
-n |
(Required) Fully qualified Service Bus namespace |
--queue |
-q |
Queue name |
--topic |
-t |
Topic name (requires --subscription) |
--subscription |
-s |
Subscription name (requires --topic) |
--target-queue |
Target queue to resubmit to (defaults to source queue) | |
--target-topic |
Target topic to resubmit to (defaults to source topic) | |
--before |
Only resubmit messages enqueued before this UTC datetime (ISO 8601) | |
--dry-run |
Preview message count without resubmitting | |
--interactive |
-i |
Interactive mode: view and select categories to resubmit |
--merge-similar |
Merge similar categories by replacing parameterized values (GUIDs, numbers) with wildcards | |
--categorize-by |
Properties to categorize by. #Prop for system, $Prop for body. Default: #Subject,#DeadLetterReason |
|
--verbose |
-v |
Enable verbose output |
# From a queue DLQ back to the same queue
dotnet run -- resubmit-dlq -n mynamespace.servicebus.windows.net -q myqueue
# From a topic subscription DLQ back to the same topic
dotnet run -- resubmit-dlq -n mynamespace.servicebus.windows.net -t mytopic -s mysub# Resubmit from queue DLQ to a different queue
dotnet run -- resubmit-dlq -n mynamespace.servicebus.windows.net -q myqueue --target-queue other-queue
# Resubmit from subscription DLQ to a different topic
dotnet run -- resubmit-dlq -n mynamespace.servicebus.windows.net -t mytopic -s mysub --target-topic other-topicPreview message count without resubmitting:
dotnet run -- resubmit-dlq -n mynamespace.servicebus.windows.net -q myqueue --dry-run[DRY RUN] Found 1,523 messages in DLQ for queue 'myqueue'
Resubmit only messages enqueued before a specific date:
dotnet run -- resubmit-dlq -n mynamespace.servicebus.windows.net -q myqueue --before 2024-01-01T00:00:00ZView messages grouped by category properties, then select which to resubmit:
dotnet run -- resubmit-dlq -n mynamespace.servicebus.windows.net -q myqueue -iDead Letter Summary:
โญโโโโฌโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโฎ
โ # โ #Subject โ #DeadLetterReason โ Count โ
โโโโโผโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโค
โ 1 โ OrderCreated โ MaxDeliveryCountExceeded โ 847 โ
โ 2 โ PaymentProcessed โ MaxDeliveryCountExceeded โ 412 โ
โ 3 โ (none) โ TTLExpiredException โ 198 โ
โ 4 โ OrderCreated โ DeadLetterReasonHeader โ 66 โ
โฐโโโโดโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโฏ
Total: 1,523 messages
Select categories to resubmit (comma-separated numbers, 'all', or 'q' to quit): 1,2
Resubmitting 1,259 messages from 2 categories...
Resubmitted 1,259 messages from DLQ for queue 'myqueue'.
Categorize by any combination of system properties (#Prop) and JSON body properties ($Prop):
# Categorize by dead letter reason and a body property
dotnet run -- resubmit-dlq -n mynamespace.servicebus.windows.net -q myqueue -i \
--categorize-by '#DeadLetterReason,$ErrorCode'See dump-dlq for full property syntax reference.
Selection options:
| Input | Action |
|---|---|
1,3,5 |
Select specific categories |
1-5 |
Select a range |
all / a |
Select all categories |
q / empty |
Quit without resubmitting |
When resubmitting, the following message properties are preserved:
- Body and ContentType
- Subject (Label)
- MessageId and CorrelationId
- SessionId and PartitionKey
- To, ReplyTo, ReplyToSessionId
- TimeToLive
- All custom ApplicationProperties
The authenticated identity needs one of these Azure RBAC roles:
- Azure Service Bus Data Owner (recommended)
- Both Azure Service Bus Data Receiver and Azure Service Bus Data Sender