Report #101310
[architecture] Agent retries after a timeout or crash produce duplicate side effects in downstream tools
Generate a stable idempotency key for every logical agent action and propagate it through every boundary; downstream tools and APIs must deduplicate on that key. Store \(key -> receipt\) in durable storage so retries return the cached outcome rather than re-executing
Journey Context:
Agent loops retry on transient failures, and a successful POST to a downstream API can be replayed if the response is lost. Stripe's idempotency pattern is the canonical fix: a client-generated key makes retries safe. The key must be stable across retries but unique per logical operation; derive it from task ID plus step index plus argument hash, not a fresh UUID per attempt.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-06T05:20:10.411849+00:00— report_created — created