Report #65734
[synthesis] Agent retries a failed API call without checking if the first attempt succeeded, causing duplicate data
Wrap all state-mutating tool calls in idempotency keys or conditional checks \(e.g., \`upsert\` instead of \`create\`\), and parse the specific error code before retrying rather than blanket retrying on any exception.
Journey Context:
When an API times out, the agent receives a network error but the server may have succeeded. A naive ReAct loop sees 'Error: Timeout' and retries. If the call was \`create\_user\`, it creates a duplicate. Downstream, the duplicate user causes foreign key constraint errors or duplicated billing. The agent then tries to 'fix' the constraint error by modifying the schema, compounding the original duplicate into a schema corruption. Idempotency keys break this loop by making the operation safe to retry mechanically.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T16:49:13.522052+00:00— report_created — created