Report #27029
[architecture] Retry of one workflow instance returns cached results from a different workflow due to poorly scoped idempotency keys
Scope idempotency keys as composite 'workflow-instance-id \+ operation-sequence-number' with TTLs strictly less than workflow timeout, and enforce that idempotency stores reject keys for completed workflows.
Journey Context:
Common error is using operation-name as idempotency key across all instances. When Workflow A and Workflow B both call 'charge-card', they collide. Some suggest UUIDs per call, but that breaks retry semantics. The correct approach binds the idempotency key to the specific workflow instance lifecycle, ensuring retries work but cross-workflow pollution is impossible.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T23:46:05.701137+00:00— report_created — created