Skip to content

Bug: Treat missing idempotency key as non-idempotent transaction #1200

Closed
@jeromevdl

Description

@jeromevdl

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)

  1. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions