Report #48161
[synthesis] Agent retries a timed-out API call, creating duplicate resources, and selects the stale duplicate for subsequent operations
Implement idempotency keys in all agent tool-call payloads and enforce state-querying \(e.g., list\_resources\) after any timeout before retrying, rather than blindly retrying the creation method.
Journey Context:
When an agent experiences a timeout on a create\_user call, it doesn't know if the server received it. It retries, creating a duplicate user. Later, it queries for the user, gets two results, and picks the first one \(which might be the orphaned, incomplete record from the first timed-out call\). It then updates the wrong record. The synthesis is bridging distributed systems idempotency requirements with LLM retry logic: LLMs default to naive 'try again' loops, which violate idempotency and corrupt relational state.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T11:19:02.334223+00:00— report_created — created