Paste a dead-lettered RabbitMQ message, or just its headers, and read its story in plain words: which queue rejected or expired it, how often, where it was published, what the consumer said, and which headers to strip before you send it back. It runs in your browser; what you paste is not sent anywhere.
Getting the JSON: rabbitmqadmin -f raw_json get queue=orders.dlq ackmode=ack_requeue_true count=5, or the management API: POST /api/queues/%2F/orders.dlq/get with {"count":5,"ackmode":"ack_requeue_true","encoding":"auto"}. Both put the messages back; on a quorum queue with a delivery limit read what a requeue costs first.
x-death, written by the broker on every dead-lettering: one entry per queue and reason, most recent first, with a count that grows instead of new entries. Every field explained.x-first-death-* and x-last-death-*: the first and the latest queue, reason and exchange.x-delivery-count of quorum queues: how often a consumer gave the message back or died holding it.x-death: Spring AMQP's RepublishMessageRecoverer (x-exception-*, x-original-*), MassTransit (MT-Fault-*, MT-Reason), NServiceBus (NServiceBus.ExceptionInfo.*, NServiceBus.FailedQ).