Description
Should not store data in persistence store when idempotency key is null.
Expected Behavior
By default, treat a transaction that is missing idempotency key as a NO-OP transaction. That means, we will continue to log a warning and will not save at the configured persistence storage layer.
This prevents mistakes when an application is designed to optionally send a unique value (e.g., X-Idempotency-Value) and NULL
doesn't get a unique sentinel value (e.g., UUID) in its absence.
Current Behavior
By default,ThrowOnNoIdempotencyKey
is set to false
. This means we will log a warning when the idempotency key is missing, since we don't know if that's intentional or not. However we continue treating the transaction like we normally would, hash the null value, and save it in the persistence store.
Test that confirms this behaviour.
Possible Solution
aws-powertools/powertools-lambda-typescript#1501
Steps to Reproduce (for bugs)
- Call the lambda handler twice with a null idempotency key
Environment
- Powertools for AWS Lambda (Java) version used: <=1.15
- Packaging format (Layers, Maven/Gradle): *
- AWS Lambda function runtime: *
- Debugging logs