AMQPLib and RabbitMQ
Channel closed by server: 406 (PRECONDITION-FAILED) with message "PRECONDITION_FAILED
As explained by this article this implies that your channel has consumed a message without ACKing or NACKing it and it has timed out. Make sure to ACK or NACK all messages when you receive them - typically after processing just in case something goes wrong there.
this.channel?.consume(q?.queue, (msg: amqplib.ConsumeMessage | null) => {
if(!msg){
throw new Error(`Received a null message - weirdness.`)
}
try{
const result = callback(msg)
this.channel?.ack(msg)
return result
}catch(err) {
console.log(err)
this.channel?.nack(msg)
}
})