-
Notifications
You must be signed in to change notification settings - Fork 420
Bug: Treat missing idempotency key as non-idempotent transaction #2465
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Originally discussed in TypeScript repo: aws-powertools/powertools-lambda-typescript#1501 |
Looking at this now. |
|
This is now released under 2.17.0 version! |
Expected Behaviour
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 an unique value (e.g., X-Idempotency-Value) and
NULL
doesn't get a unique sentinel value (e.g., UUID) in its absence.Current Behaviour
By default,
raise_on_no_idempotency_key
is set toFalse
. 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 theNone
value, and save it in the persistence store.Tests confirming behaviour
Code snippet
Possible Solution
aws-powertools/powertools-lambda-typescript#1501
Steps to Reproduce
Calling the handler twice without the
X-Idempotency-Value
HTTP Header will return the first response in both requests.Powertools for AWS Lambda (Python) version
latest
AWS Lambda function runtime
3.10
Packaging format used
Lambda Layers
Debugging logs
No response
The text was updated successfully, but these errors were encountered: