This repository was archived by the owner on Mar 23, 2026. It is now read-only.
Description Is there an existing issue for this?
Current Behavior
Defined 3 SQS queues:
Queue1 (Set it's DLQ to Queue2 using REDRIVE_POLICY with maxReceiveCount=1 and VISIBILITY_TIMEOUT=3)
Queue2 (Set it's DLQ to Queue3 using REDRIVE_POLICYwith maxReceiveCount=1 and VISIBILITY_TIMEOUT=3)
Queue3
Therefore the messages flow is Queue1 -> Queue2 -> Queue3 (in case of no messages deletion and more then 1 receive operation on the queue).
Flow:
Send message to Queue1 (aws sqs send-message)
Poll message from Queue1 (aws sqs receive-message) and got message
Wait for VISIBILITY_TIMEOUT to expire
Poll message from Queue1 (aws sqs receive-message) and got no message -> message goes to Queue2
Poll message from Queue2 (aws sqs receive-message) - got no message -> message goes to Queue3
Expected Behavior
Flow (Same queues configuration):
Send message to Queue1 (aws sqs send-message)
Poll message from Queue1 (aws sqs receive-message) and got message
Wait for VISIBILITY_TIMEOUT to expire
Poll message from Queue1 (aws sqs receive-message) and got no message -> message goes to Queue2
Poll message from Queue2 (aws sqs receive-message) and got message
Poll message from Queue2 (aws sqs receive-message) - got no message -> message goes to Queue3
Look at 5 - This step does not happen actually in Localstack (tested same configuration on AWS and it works as expected)
How are you starting LocalStack?
With a docker-compose file
Steps To Reproduce
How are you starting localstack (e.g., bin/localstack command, arguments, or docker-compose.yml)
Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)
awslocal sqs create-queue --queue-name queue3 --attributes file:///docker-entrypoint-initaws.d/sqs-config/queue3-attributes.json
awslocal sqs create-queue --queue-name queue2 --attributes file:///docker-entrypoint-initaws.d/sqs-config/queue2-attributes.json
awslocal sqs create-queue --queue-name queue1 --attributes file:///docker-entrypoint-initaws.d/sqs-config/queue1-attributes.json
(Remove the .txt from each file - added it just to be able to upload)
queue1-attributes.json.txt
queue2-attributes.json.txt
queue3-attributes.json.txt
Environment
- OS: MacOS
- LocalStack: localstack-full:0.13.0.10
Anything else?
No response
Reactions are currently unavailable
Is there an existing issue for this?
Current Behavior
Defined 3 SQS queues:
REDRIVE_POLICYwithmaxReceiveCount=1andVISIBILITY_TIMEOUT=3)REDRIVE_POLICYwithmaxReceiveCount=1andVISIBILITY_TIMEOUT=3)Therefore the messages flow is
Queue1 -> Queue2 -> Queue3(in case of no messages deletion and more then 1 receive operation on the queue).Flow:
Queue1(aws sqs send-message)Queue1(aws sqs receive-message) and got messageVISIBILITY_TIMEOUTto expireQueue1(aws sqs receive-message) and got no message -> message goes toQueue2Queue2(aws sqs receive-message) - got no message -> message goes toQueue3Expected Behavior
Flow (Same queues configuration):
Queue1(aws sqs send-message)Queue1(aws sqs receive-message) and got messageVISIBILITY_TIMEOUTto expireQueue1(aws sqs receive-message) and got no message -> message goes toQueue2Queue2(aws sqs receive-message) and got messageQueue2(aws sqs receive-message) - got no message -> message goes toQueue3Look at
5- This step does not happen actually in Localstack (tested same configuration on AWS and it works as expected)How are you starting LocalStack?
With a docker-compose file
Steps To Reproduce
How are you starting localstack (e.g.,
bin/localstackcommand, arguments, ordocker-compose.yml)Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)
(Remove the
.txtfrom each file - added it just to be able to upload)queue1-attributes.json.txt
queue2-attributes.json.txt
queue3-attributes.json.txt
Environment
Anything else?
No response