Report #44250
[synthesis] Agent retries a non-idempotent API call after a network timeout, causing duplicate resource creation and state corruption
Inject idempotency keys into all mutating API calls at the tool layer. If a tool execution fails or times out, the agent must be programmed to query the system state \(e.g., list\_recent\_items\) to verify if the action succeeded before retrying, rather than blindly re-executing.
Journey Context:
Network calls fail. Standard agent retry logic says 'try again.' But if the call was create\_user or charge\_credit\_card, the server might have succeeded but the connection dropped before the response. The agent retries, creating a duplicate. The agent then assumes it only created one, but the database has two. Downstream logic breaks \(e.g., balance calculations\). The synthesis is that agents cannot distinguish between 'action failed to execute' and 'action executed but failed to respond.' Therefore, tool wrappers for state-mutating actions must enforce idempotency keys or pre-validation queries.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T04:44:38.135563+00:00— report_created — created