Agent reports ✅ $99.99 · Bank statement shows -$399.96
A single-file interactive demo showing idempotency blindness — the silent failure mode where an AI agent retries a timed-out tool call without an idempotency key, causing the same action to execute multiple times on the provider side.
The agent dashboard stays green. The Stripe ledger fills up.
Agent → stripe_charge($99.99) → TIMEOUT (waiting 30s)
Agent → stripe_charge($99.99) → TIMEOUT (attempt 2, no idempotency key)
Agent → stripe_charge($99.99) → TIMEOUT (attempt 3)
Agent → stripe_charge($99.99) → SUCCESS ✅
Agent says: "Payment processed: $99.99"
Stripe says: 4 charges × $99.99 = $399.96
The original charge didn't fail — it just didn't respond in time. Every retry created a new charge. The customer is billed 4× before anyone notices.
Toggle the Idempotency Key switch in the demo. With a key:
stripe_charge($99.99, idempotency_key="order-CX4421-1723519200")
Stripe deduplicates all retries against the same key and returns the cached result. One charge. Always.
| Scenario | Provider | Duplicate Effect |
|---|---|---|
| Payment Charge | Stripe | Customer charged N× |
| Welcome Email | SendGrid | Customer spammed N× |
| Inventory Deduct | Inventory API | Stock decremented N× |
All three show the same pattern — different consequences.
index.html Single-file interactive demo (760 lines)
README.md This file
Live demo (recommended):
👉 https://rlasaf12.github.io/echoburn/
Local:
open index.html
# or
python3 -m http.server 8080No dependencies. No build step. No API keys.
| Control | What It Does |
|---|---|
| Idempotency Key toggle | ON = provider deduplicates · OFF = full overcharge |
| Retry limit | 2, 3, or 4 retries before final success |
| Scenario | Switch between Payment / Email / Inventory |
| Run | Start the animated scenario |
| Reset | Clear all panels |
| # | Name | Failure Mode | Live |
|---|---|---|---|
| 19 | ORPHANCALL | Fire-and-forget with no confirmation | ↗ |
| 20 | BLEEDTHROUGH | Context leaking across agent turns | ↗ |
| 21 | TOOLROT | Cached tool schema diverging from reality | ↗ |
| 22 | ECHOBURN | Idempotency blindness — duplicate side-effects | ← you are here |
Built by Harel Asaf · Part of nightly autonomous prototype work