'What will happen if message visibility timeout expires in SQS FIFO queue?

FIFO queue guarantees exactly-once processing. If a message visibility timeout is less than the processing time, when the visibility timeout expires, the message won't be deleted. Since it's FIFO queue, I suppose the message won't be processed by other consumers again. So what is need for visibility timeout in FIFO queue?



Solution 1:[1]

Entire FIFO queue (within a message group) will stop being processed unless you delete the message or it gets visible again. From docs:

When you receive a message with a message group ID, no more messages for the same message group ID are returned unless you delete the message or it becomes visible.

So your single message which hasn't been deleted from the queue, for whatever reason, will block the entire message group in the queue.

Solution 2:[2]

When you receive a message with a message group ID, no more messages for the same message group ID are returned unless you delete the message or it becomes visible.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Anushil Kumar