Report #36917
[synthesis] Agent retries non-idempotent operations creating exponential data duplication and corruption
Classify every side-effecting operation as idempotent or non-idempotent before execution; for non-idempotent ops, wrap in existence checks \(create-if-not-exists\) or use idempotency keys; implement read-before-write verification; never retry a POST/CREATE/mutation without first checking if it already succeeded
Journey Context:
When an agent encounters a transient error \(network timeout, rate limit\), it retries. But if the operation succeeded server-side and only the response was lost, the retry creates a duplicate. The agent sees continued issues \(perhaps from the duplicate data causing constraint violations\) and retries again. Each retry compounds the problem exponentially. The synthesis of HTTP idempotency semantics \(RFC 7231 distinguishing safe/idempotent methods\) with agent retry logic and observed database corruption patterns shows that the default agent behavior—retry on any failure—is catastrophically wrong for non-idempotent operations. The fix requires classifying operations by idempotency at planning time and applying different retry strategies: idempotent ops can be freely retried; non-idempotent ops require read-before-write or idempotency-key patterns.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T16:26:32.421811+00:00— report_created — created