You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bug: idempotency payloads with set, frozenset or bytes fields cannot be hashed #8725
For contributors, human or agent. Comment here to claim this issue and wait for the assignment before opening a PR; if two PRs show up, the assignee's stays. AI-assisted work is welcome, say so in the PR and tell us how you verified it: run the tests yourself and paste what you saw, do not describe runs you did not do. Read AGENTS.md first, it has the commands and the rules the CI enforces. This goes into 3.41.0.
Expected Behaviour
A dataclass or Pydantic payload with set, frozenset or bytes fields can be used as the idempotency payload; the key hash is computed deterministically.
Current Behaviour
_IdempotencyKeyEncoder in persistence/base.py handles Enum, date/time, UUID and PurePath only. A set field makes the key computation fail with IdempotencyPersistenceLayerError: Failed to save in progress record to idempotency store - Object of type set is not JSON serializable, which reads like a store outage rather than an unsupported payload.
Code snippet
fromdataclassesimportdataclassfromaws_lambda_powertools.utilities.idempotencyimportidempotent_function@dataclassclassPayload:
id: inttags: set@idempotent_function(data_keyword_argument="payload", persistence_store=layer)defprocess(payload: Payload):
return"ok"process(payload=Payload(1, {"a"})) # IdempotencyPersistenceLayerError ... Object of type set is not JSON serializable
Possible Solution
Extend _IdempotencyKeyEncoder.default: encode set/frozenset as a sorted list (sort by repr when elements are not comparable) and bytes as base64. Add tests asserting that the same payload with the same set in a different insertion order produces the same key, and that bytes works.
Item 8 of the Idempotency audit in #8603. No AWS resources needed.
For those interested in contributing, please leave a comment below so that we can assign the issue to you and make sure we don't duplicate efforts. If you have any further questions, please don't hesitate to ask below or on our Discord server.
HI @leandrodamascena
I would like to claim this issue! I'll work on extending _IdempotencyKeyEncoder to support set, frozenset, and bytes, and add the requested unit tests.
Hi @leandrodamascena! Just wanted to drop a quick note that I've got everything wrapped up here. All 33 tests are passing cleanly and lint checks are completely clear.
Activity
powertools-for-aws-oss-automation commentedon Oct 31, 2026
Note
For those interested in contributing, please leave a comment below so that we can assign the issue to you and make sure we don't duplicate efforts. If you have any further questions, please don't hesitate to ask below or on our Discord server.
Neeraj111010 commentedon Oct 31, 2026
HI @leandrodamascena
I would like to claim this issue! I'll work on extending
_IdempotencyKeyEncoderto supportset,frozenset, andbytes, and add the requested unit tests.leandrodamascena commentedon Nov 1, 2026
@Neeraj111010 it's yours, assigning you now. Go ahead with the PR, and say in the description how you ran the tests.
Neeraj111010 commentedon Nov 1, 2026
Hi @leandrodamascena! Just wanted to drop a quick note that I've got everything wrapped up here. All 33 tests are passing cleanly and lint checks are completely clear.
Thanks again!
anishsinghhh3-bit commentedon Nov 2, 2026
I would like to work on this issue.
leandrodamascena commentedon Nov 2, 2026
Thanks @anishsinghhh3-bit, this one is already assigned to @Neeraj111010. The Logger audit in #8730 becomes issues this week, keep an eye on it.