Why does a Service Bus message reach the dead-letter queue?
Why D is the answer
It can no longer be delivered, such as after too many attempts
Dead-lettering holds undeliverable messages for inspection and reprocessing.
In detail
- Messages go there when they cannot be delivered, such as after too many attempts.
- Messages can also expire into it, depending on settings.
Use case
An illustrative scenario, not a real incident.
A message with a bad format exceeds its delivery count and moves aside, where an engineer can inspect it.
See it in different ways
stateDiagram-v2 [*] --> Active Active --> Processing: received Processing --> Completed: success Processing --> Active: failed, retry Active --> DeadLetter: max delivery count reached Completed --> [*]
stateDiagram-v2 [*] --> Queued Queued --> Processing Processing --> Completed: success Processing --> Queued: failure, retry Processing --> DeadLetter: maximum delivery count reached Completed --> [*]
stateDiagram-v2 state "Queued" as s0 state "Delivered" as s1 state "Completed" as s2 state "Dead-lettered" as s3 [*] --> s0 s0 --> s1 s1 --> s2: success s1 --> s0: failure s1 --> s3: too many attempts s2 --> [*] s3 --> [*]
Key point: Undeliverable messages are dead-lettered.
Why the other options are wrong
- A. It was processed successfully on the first try
- Successful messages are completed.
- B. It was published with a very short message body
- Body size is not a reason.
- C. It was read by a second receiver at the same time
- Locks stop a second receiver reading it.

