Skip to content

Commit c4489dc

Browse files
committed
Document error field of Rejected outcome.
Docs for rabbitmq/rabbitmq-server#15075
1 parent d58956a commit c4489dc

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

docs/amqp.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ The following table describes the outcomes when the client is the sender/publish
255255
| AMQP 1.0 Outcome | Equivalent AMQP 0.9.1 Frame | Description |
256256
| --- | --- | --- |
257257
| [Accepted](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-accepted) | `basic.ack` | **All** queues the message was routed to have accepted the message. For example for [quorum queues](./quorum-queues), this means a majority of quorum queue replicas have written the message to disk. The publisher can therefore forget/delete the message. |
258-
| [Rejected](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-rejected) | `basic.nack` | At least one queue the message was routed to rejected the message. This happens when the [queue length](./maxlength) is exceeded and the queue's [overflow](./maxlength#overflow-behaviour) behaviour is set to `reject-publish` or when a target [classic queue](./classic-queues) is unavailable.<br/>RabbitMQ also rejects messages as specified in [Using the AMQP Anonymous Terminus for Message Routing](https://docs.oasis-open.org/amqp/anonterm/v1.0/cs01/anonterm-v1.0-cs01.html#doc-routingerrors), for example if a message's `to` field of the [properties](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-properties) section contains an invalid address or defines a non-existing exchange. |
258+
| [Rejected](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-rejected) | `basic.nack` | At least one queue rejected the message, either because the [queue length](./maxlength) limit was exceeded (when [overflow](./maxlength#overflow-behaviour) is set to `reject-publish`) or because a target [classic queue](./classic-queues) is unavailable. The [`error`](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-error) field's `info` map contains keys `queue` (with the queue name as value) and `reason` (with value `maxlen` or `unavailable`).<br/>RabbitMQ also rejects messages as specified in [Using the AMQP Anonymous Terminus for Message Routing](https://docs.oasis-open.org/amqp/anonterm/v1.0/cs01/anonterm-v1.0-cs01.html#doc-routingerrors), for example if a message's `to` field of the [properties](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-properties) section contains an invalid address or defines a non-existing exchange. |
259259
| [Released](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-released) | `basic.return` (followed by `basic.ack` or `basic.nack`) | RabbitMQ could not route the message to any queue. This indicates a topology misconfiguration, for example when no matching queue is bound to the target exchange. |
260260
| [Modified](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-modified) | | Currently, RabbitMQ does not settle a message with the modified outcome. |
261261

@@ -300,6 +300,7 @@ This section lists features that RabbitMQ supports exclusively in AMQP 1.0, whic
300300
* **WebSocket**: [VMware Tanzu RabbitMQ](https://www.vmware.com/products/app-platform/tanzu-rabbitmq) supports [AMQP 1.0 over WebSocket](/blog/2025/04/16/amqp-websocket) allowing applications running in a browser to communicate with RabbitMQ using AMQP 1.0.
301301
* **[Modified Outcome](#modified-outcome)**: Allows a quorum queue consumer to add and modify [message annotations](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-message-annotations) when requeueing or dead lettering a message.
302302
* **[Sender Settle Mode](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-sender-settle-mode) `mixed`**: Allows a publisher to decide on a per-message basis whether to receive [confirmations](./confirms#publisher-confirms) from the broker.
303+
* **Detailed Rejection Information**: When RabbitMQ rejects a message, publishers receive the queue name and rejection reason in the [`Rejected` outcome](#outcomes), allowing them to identify which specific queue rejected the message and why. This is particularly useful when multiple queues are bound to a target exchange.
303304
* **Well defined [types](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-types-v1.0-os.html)**
304305
* **Better defined [message headers](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#section-message-format)**
305306
* **Enhanced Message Integrity**: Clients can set message hashes, checksums, and digital signatures not only over the message body but also over the [properties](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-properties) and [application-properties](https://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-application-properties) sections, as the bare message is immutable.

0 commit comments

Comments
 (0)