I am sending messages from an SQS queue to a Node.js Lambda function. I send about 20 messages at the same time to the queue after which Lambda starts working.
Some of these messages never seem to appear in the queue, or at least don't make it to Lambda. I don't see any activity in the Cloudwatch logs for those missing messages.
It's a long polling queue with these settings:
- Default Visibility Timeout: 2 minutes
- Delivery delay: 0 seconds
- Receive Message Wait Time: 5 seconds
- Queue type: Standard
The Lambda script finished in a few seconds and has concurrency set to 'Use unreserved account concurrency'.
For debugging purposes, I'm now also sending all the messages to a second queue that doesn't get processed. There I can see all the messages, also the ones that are missing from the other one.
The messages just contain about 3 numeric variables in a json, so the size shouldn't be an issue.
I have set up a redrive policy, and the missing messages don't show up in the dead letter queue either.
Kinda pulling my hair out here. Any ideas why these messages seem to disappear?