Hi @Ashok, the basic pattern here is that your application should keep hold of the message until it has been successfully acknowledged. So let’s say you receive a message, perform some data processing and acknowledge the message. If the data processing fails, provided you still have a copy of the message you can perform whatever business logic you need to - for instance reprocessing the data.
You should only remove references to the message object once you’re satisfied that acknowledge has been called successfully.