Microsoft researcher Jiapeng Li's Limbo benchmark found AI agents duplicated side-effecting writes in 56% and 74% of in-flight and double-delivery episodes. Offering idempotency keys cut duplicates from 28% to 4%, so tools that move money or send mail should require them.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap+10
- Incentives25
- Confidence40
Splitting an AI agent's 'done' into three status fields stops a green CI run from standing in for a reviewer's acceptance, a dev.to tutorial argues. That costs 16 state values to track and a permission check on each transition.
Reality
- Evidence40
- Adoption
- Insufficient
- Hype gap+15
- Incentives
- Insufficient
- Confidence55
Strands and CrewAI agents exited 0 on all six runs where a broken verification tool checked nothing, a recorded-proxy test on dev.to found. Only tool-call traffic captured outside the framework showed the failures.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap+10
- Incentives
- Insufficient
- Confidence40
Retried Buy clicks get the original order back in a dev.to guide that commits each order with its attempt key in one SQLite transaction. A disabled button only cuts double-clicks, and the guide's available text ends before it covers charging the card.
Reality
- Evidence55
- Adoption
- Insufficient
- Hype gap0
- Incentives
- Insufficient
- Confidence50
A lost response looks exactly like a failed request from the client. That single ambiguity is why any API that moves money has to treat a duplicate submission as normal traffic.
Reality
- Evidence50
- Adoption
- Insufficient
- Hype gap+15
- Incentives15
- Confidence60
In a five-step saga, running compensations out of LIFO order leaves a payment captured against a cancelled order, a dev.to walkthrough shows. Its fix is a durable, versioned coordinator with idempotency keys on every step and every compensation.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap+10
- Incentives
- Insufficient
- Confidence55
Agent loops can repeat a state-changing tool call in eight separate ways, a dev.to post argues, and each can duplicate a refund whose reply was lost. The post's fix is a stable operation ID tied to the payload, with UNKNOWN outcomes held until someone checks the provider.
Reality
- Evidence35
- Adoption
- Insufficient
- Hype gap+5
- Incentives
- Insufficient
- Confidence40
Every booking in a flash-sale seat design on dev.to runs through one atomic Redis Lua script, yet the counter still needed four separate fixes. The last one holds each booking until a Redis replica confirms the write.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap+15
- Incentives
- Insufficient
- Confidence50
A dev.to post says the 2026-07-28 specification dropped the initialize flow and Mcp-Session-Id, so MCP requests can land on any instance. The refund agent it walks through still breaks on the second pod.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap+10
- Incentives25
- Confidence40
Across 34 runs on three agent frameworks, a recorder proxy shows that what the dedup key names decides whether a retried publish executes once or twice, and that surviving a SIGKILL is a separate question about where state is kept.
Reality
- Evidence46
- Adoption
- Insufficient
- Hype gap+18
- Incentives36
- Confidence52
A job-application tool records its intent before the POST and marks a timed-out submit UNKNOWN forever, then blocks the next attempt at that role until a person checks the inbox. Its 210 verified submissions count only confirmed closes.
Reality
- Evidence30
- Adoption15
- Hype gap+30
- Incentives80
- Confidence45
A reconciliation job verified the charge with Paystack and marked the payment row SUCCESS, then fulfilment failed on an unrelated tenant-context bug, and the sweeper only ever reads PENDING rows.
Reality
- Evidence48
- Adoption
- Insufficient
- Hype gap+10
- Incentives30
- Confidence55
A dev.to walkthrough stores the provider's DNS zone ID as replaceable cache and checks the returned domain before every mutation. The cutover only closes when an independent DNS read matches the approved MX set.
Reality
- Evidence30
- Adoption
- Insufficient
- Hype gap+10
- Incentives20
- Confidence38
A dev.to walkthrough of per-tenant subdomains on a gaming platform gives the TTL drop, the target change and the TTL restore separate deadlines, preconditions and audit evidence, so a worker that restarts can prove what it already applied.
Reality
- Evidence32
- Adoption
- Insufficient
- Hype gap0
- Incentives18
- Confidence45
A dev.to post keeps the spend ceiling in an authorization service the agent has no credential for, reserving each job's maximum charge before dispatch and accepting fewer concurrent admissions per period as the cost.
Reality
- Evidence48
- Adoption
- Insufficient
- Hype gap+5
- Incentives20
- Confidence55
A dev.to walkthrough makes the shippable unit a five-field decision contract with evidence IDs, scored by a harness of 50 to 100 finance cases in which three of the four groups exist to see whether the agent stops.
Reality
- Evidence34
- Adoption
- Insufficient
- Hype gap+15
- Incentives62
- Confidence48
A dev.to post argues that the email API versus SMTP question follows from where suppression lookups, message IDs and delivery-event state live, and its Go sketch leaves the transport as the only interface the decision touches.
Reality
- Evidence48
- Adoption
- Insufficient
- Hype gap+5
- Incentives20
- Confidence60
Offset start times kept a shared file queue from colliding for months. One day-long Codex outage made every launchd lane start at the same instant, and the pickup scripts had no mutual exclusion to fall back on.
Reality
- Evidence38
- Adoption14
- Hype gap+30
- Incentives58
- Confidence42
SQS standard queues and Lambda event source mappings both deliver at least once, and that guarantee is about the envelope. A lab in us-east-1 sent the same 150-real order four times and logged four charges.
Reality
- Evidence56
- Adoption
- Insufficient
- Hype gap−8
- Incentives22
- Confidence62
A dev.to post argues that processing.guarantee=exactly_once_v2 charges coordination overhead to every message and still leaves external side effects for you to deduplicate by hand. The five-line alternative it offers has a gap of its own.
Reality
- Evidence45
- Adoption
- Insufficient
- Hype gap+25
- Incentives40
- Confidence45
Earlier coverage
- Refunding TX-18491 instead of TX-18419 passes every check the endpoint can run
Build · September 20, 2026 · 1 publisher
- A pod restart between charging and committing the offset bills the customer twice
Build · September 19, 2026 · 1 publisher
- A crash between the claim and the work makes the copied webhook dedupe swallow events
Build · September 18, 2026 · 1 publisher
- An execution boundary lets the application refuse an agent's proposed tool call
Build · September 18, 2026 · 1 publisher
- Pre-assigning a request ID turns a timed-out generation call into a resumable attempt
Build · September 17, 2026 · 1 publisher
- A caption emoji rendered as an image broke the landing check behind three identical posts
Build · September 16, 2026 · 1 publisher
- 40,000 inventory updates outlive the 900-second cron runner that retries them
Build · September 16, 2026 · 1 publisher
- Postgres holds the weekly digest schedule so an operator can see what is due
Build · September 15, 2026 · 1 publisher
- A 100-request run makes p99 the second-slowest sample in this shipping-label harness
Build · September 15, 2026 · 1 publisher
- Marking the Inbox row PROCESSED before the business commit suppresses the retry
Build · September 15, 2026 · 1 publisher
- A stable key per notice and channel lets a restarted worker resend only the pending SMS
Build · September 13, 2026 · 1 publisher
- A delivery row per consumer records which credential read each webhook event
Build · September 13, 2026 · 1 publisher
- Changing the operation key on a retry left the lab with a second job
Build · September 13, 2026 · 1 publisher
- Cloudflare's CASB remediation runs on a queue that can deliver the same finding twice
Build · September 12, 2026 · 1 publisher
- Treating a publish timeout as failure is how a retry can send the same article twice
Build · September 12, 2026 · 1 publisher
- A generated read-then-write lets both requests spend the same balance
Build · September 11, 2026 · 1 publisher
- Duplicate taps arrive at the server carrying one idempotency key
Build · September 11, 2026 · 1 publisher
- A green delivery chart hides the renewal reminder still waiting behind a 429
Build · September 10, 2026 · 1 publisher
- A forty-line guard removes the second writer behind a double-posted announcement
Build · September 10, 2026 · 1 publisher
- Webhook post covers HMAC signatures and idempotency keys, but breaks off before replay protection is addressed
Build · September 10, 2026 · 1 publisher
- The gateway returns 504 while the agent keeps spending tokens
Build · September 10, 2026 · 1 publisher
- Treating MTN's 409 as a failure is what double-charges the customer
Build · September 9, 2026 · 1 publisher
- Meta's three-second webhook window turns a slow WhatsApp handler into duplicate replies
Build · September 8, 2026 · 1 publisher
- Payment updates can go missing at three points, and providers or clients may retry
Build · August 30, 2026 · 1 publisher
- Reserving the idempotency key before the gateway call is what wins the race
Build · August 29, 2026 · 1 publisher
- A recorded cutoff and an operation key make the second delete delivery a no-op
Build · August 27, 2026 · 1 publisher
- Disabling Submit Fixes the Click, Not the Lost Response
Build · August 21, 2026 · 1 publisher
- The queue failure that costs you is silent, and it is what BullMQ tutorials skip
Build · August 16, 2026 · 1 publisher