Self reflexive lambda function execution by sqs queue trigger stops after 16 (sixteen) calls #3899
Labels
closing-soon
This issue will automatically close in 4 days unless further comments are made.
service-api
This issue is caused by the service API, not the SDK implementation.
sqs
Describe the bug
Short description:
When an SQS-Queue acts as a trigger for an lambda function, and the lambda function itself sends messages to the same sqs queue, the lambda function will not be triggered after the sixteens (16th) message with the same messagebody.
Use-Case where it was detected
Our use case is that we've a lambda function that is started by an sqs delay queue message. Within the message there is an ID, which we check against a dynamodb. If the dynamodb query returns that the entry with the ID from the sqs event is in state "OK", we do some work an quit the lambda function. If the dynamodb query returns that the entry with provided ID is not in state "OK", we send a new message with the same ID in the message body to the same sqs queue. So basically we calling us in a self reflexive way.
Environment
We've detected that issue within a lambda running in Java 8 on SDK 1.12.566.
But the behavior can be reproduced also within the python runtime, so i choosed python for the bug ticket.
Expected Behavior
Not matter how often we send a message to the sqs queue, the lambda function should be triggered.
Current Behavior
After sixteen (16) messages, the lambda function will not be triggered anymore. We can see one message "in flight" in the queue overview, but no lambda processing it.
Reproduction Steps
Create a SQS Queue
Create Lambda function
Send initial message to SQS queue
Lambda Code
Possible Solution
No response
Additional Information/Context
Lambda function overview
Start execution
FIFO-Queue after execution
Log of execution
log-results.csv
SDK version used
1.12.566
Environment details (OS name and version, etc.)
Java Runtime, Python runtime
The text was updated successfully, but these errors were encountered: