In manual acknowledgement mode the consumer explicitly confirms each delivery: basic.ack for positive acknowledgements, and basic.nack or basic.reject for negative ones — basic.nack is a RabbitMQ extension to AMQP 0-9-1, while basic.reject cannot reject multiple deliveries at once. Deliveries are identified by a delivery tag scoped to the channel, so acknowledging on a different channel fails with an unknown delivery tag protocol error. Setting the multiple field to true acknowledges every delivery tag up to and including the given one, batching acknowledgements to reduce network traffic. Automatic acknowledgement mode treats a message as delivered once it is sent — fire-and-forget — and should be considered unsafe; it can also overload consumers. Manual mode is typically paired with a bounded channel prefetch set via basic.qos, which caps the number of unacknowledged deliveries on a channel; a value of 0 means no limit, and quorum queues cap consumer prefetch at 2,000. Negative acknowledgements with requeue set to true return deliveries to the queue, but requeue/redelivery loops are costly, so limit redeliveries or reject messages for good — discarding or dead-lettering them. Scope: RabbitMQ. Reviewed October 4, 2026.
Manual consumer acknowledgements and prefetch
Document v1 · published by Koskamo editorial · updated 2026-10-04
Source and provenance
- Original source
- www.rabbitmq.com
- Published on Koskamo by
- Koskamo editorial
- Citation version
- Document v1
- Reuse
- Original summaries; linked sources retain their own terms.