New: Cookbooks and AI ExplanationsStep-by-Step recipes to solve problems connected to Roadmaps and Cheat Sheets. Need more details? Use AI buttons for structured and simple explanations with concrete examples throughout the whole platform.Take a look
One bad message keeps failing and RabbitMQ keeps redelivering it, and it's sitting in front of every message that came in after it.
What you'll have at the end
A separate dead-letter queue holding only the messages that failed repeatedly, with the main queue moving again
You need
A consumer already pulling messages from an existing durable queue, acknowledging each one only once it finishes, and rejecting it back onto the queue whenever it can't be processed.
Not covered
Retrying a failed message with a growing delay between attempts, and replaying a quarantined message once its cause is fixed; both come after a poison message has already stopped blocking the queue.
Leans on
Stop a crash from losing a job nobody acknowledged
this recipe assumes you already only acknowledge a message once it's genuinely done; if a worker crash can still make a message vanish outright, fix that first.
Make your queue consumer idempotent
a message that gets several genuine retries before landing in the dead-letter queue needs a handler that tolerates seeing it more than once, in case an earlier attempt partly succeeded before failing.
Checked 19 Aug 2026
Part of the Message Queues cookbook