---
schema_version: "1"
id: 794538262b99d23ec4352a826b595041775cc92c82bf9850f9cea34241c30c5a
title: Handle Message Acknowledgment
collection: mulesoft
version: current
locale: en-us
portal_url: https://docs.salesforce.com/mulesoft/current/en-us/amqp-connector/latest/amqp-ack.md
canonical_url: https://docs.mulesoft.com/amqp-connector/latest/amqp-ack
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 04b49291f5165f752835da30182f7d1583ab041ebe5bf66545a43a0cb0171b92
description: MuleSoft Documentation Site
release: "1.9"
latest: true
---
---
product: AMQP Connector
version: 1.9
is-latest-version: true
---

# Handle Message Acknowledgment

> For the full documentation index, see: https://docs.mulesoft.com/llms.txt

Anypoint Connector for AMQP provides different acknowledgment configurations.

## Automatic Acknowledgment On Success

The `AUTO` `ackMode` can be used in the `amqp:listener` component, causing the automatic ACK of the
received message **if and only if the flow execution completes successfully**. In case that an error
occurs during the flow execution that causes it to terminate prematurely, then the message will not
be ACKed and redelivery will occur.

## Immediate Acknowledgment

Setting the `ackMode` to `IMMEDIATE` either in `amqp:listener` or `amqp:consume` operations will
cause the Message to be automatically ACKed once it is consumed, and prior to any processing of the
Message by the application. Having the Message automatically acknowledged once it is received means
that the Message won\`t be redelivered if any error occurs during the processing of the Message, so
application logic like a dead letter queue has to be created to handle errors without losing
Messages.

## Manual Acknowledgment

As you may expect, the `MANUAL` `ackMode` delegates all the responsibility of performing the ACK on
the Message to the application logic.

With this configuration, every Message received by either the `listener` or `consume` operations
will have an `ackId` available in the MuleMessage `attributes` which identifies this Message
uniquely for a given channel.

The `ackId` that identifies the Message will then be passed on to the `amqp:ack` operation:

```xml
<flow name="consumerWithManualAck">
    <amqp:consume config-ref="config" queueName="${queueName}" ackMode="MANUAL" />

    <!--Do message processing-->
    <logger message="#[payload]">

    <amqp:ack ackId="#[attributes.ackId]" />
</flow>
```

## See Also

- [Listen For New Messages](https://docs.mulesoft.com/amqp-connector/latest/amqp-listener)

- [Salesforce Help](https://help.salesforce.com)
