fix: SQS Delete Batch ID's should be distinct, which MessageID is not guaranteed to be #253
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When deleting a batch of SQS messages, the Batch ID's have to be unique.
If not, a 'BatchEntryIdsNotDistinct' error is returned and none of the messages are deleted.
Setting this ID equal to the MessageID causes problems because multiple receipts of the same message will have the same MessageID, although it's not the same ReceiptHandle.
For e.g. a single batch may contain:
messageA#receipt1
messageA#receipt2
.In both cases, the MessageID is
messageA
but in terms of batched deletion it's two different items.According to the docs here, the ID passed to DeleteBatch is just a correlation ID, so it can be set to anything user-generated:
So we can just set it to a random UUID to avoid duplicates.