[rabbitmq-discuss] reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag

Matthias Radestock matthias at rabbitmq.com
Thu Aug 9 09:40:29 BST 2012


On 09/08/12 01:51, Vineet Chadha wrote:
> {#method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED -
> unknown delivery tag 1073743883, class-id=60, method-id=80), null,
> "[B at 607daec3"}
>  From what i have read so far it seems like a problem of double ack. but
> it could be something totally different.

Apart from the unlikely scenario of the client application randomly 
inventing delivery tags and submitting acks, the probable causes are:

- ack'ing the same message twice

- ack'ing on a channel other than the one the messages was received on (*)

- ack'ing a message when it was consumed in no-ack mode

- all the above but using basic.reject, basic.nack instead of basic.ack, 
or a combination of the three (e.g. rejecting a message and then ack'ing it)

(*) this is a common occurrence in applications with naive error 
recovery logic that re-establishes connections&channels transparently 
behind the scenes.

> Our application is connecting to the cluster through a netscaler VIP.
> We have not seen this problem when consuming from a local cluster with
> the same application.

The local/remote difference does not change anything logically, but it 
does affect timing which thus can reveal race conditions in the application.



More information about the rabbitmq-discuss mailing list