Urgent.News

What's breaking now, across thousands of outlets.

AI

Your AI builder shipped the Stripe code in an afternoon. Verifying it took a week.

A friend shipped a booking app last month. Lovable built the whole thing, Stripe Checkout included, in something like an afternoon. It looked finished. It was finished, in the sense that you could pay and get a confirmation email. Then a customer got charged twice for one booking. Not a double-click. One payment, one payment_intent.succeeded , delivered twice, because Stripe retries. The handler…

A friend recently built a booking app using a powerful AI tool that generated the entire code, including Stripe Checkout functionality, in just a few hours. The app functioned as intended, allowing users to complete bookings and receive confirmation emails. However, a critical issue emerged when a customer was charged twice for a single booking. The Stripe Checkout feature retries failed to handle this situation properly, resulting in two bookings being created instead of one.

The problem lies in the fact that the code appeared to be well-written and passed initial code reviews without any issues. This highlights a significant gap in the current verification process for AI-generated code. Normal testing methods, such as mocks and staging, are unable to detect this specific bug, as they only verify the happy path and do not account for retries or second deliveries.

To identify the issue, the reporter devised a solution involving a special tool called a "service twin." This tool allows the AI-generated code to be driven intentionally, forcing the Stripe Checkout feature to behave like a real Stripe system, including its retry mechanisms. By using this service twin, the reporter was able to trigger a second delivery and observe the unintended consequence of two bookings being created for a single payment.

The fix for this problem is relatively straightforward: adding a check to verify if a booking event has already been processed before creating a new one. By implementing this simple verification, the reporter was able to prevent the bug from occurring again. This example demonstrates the importance of thorough testing, particularly when it comes to handling edge cases like retries and duplicate deliveries.

The reporter emphasizes the need for better verification methods and tools to catch such issues before they reach production, ensuring the reliability and integrity of AI-built applications.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in AI

A bold road: Saudi Arabia bets on driverless trucks

A bold road: Saudi Arabia bets on driverless trucks newspress_en Sun, 09/06/2026 - 05:20 Business & Economy The biggest news to emerge from the LEAP 2026 technology conference in Riyadh at the end of…

  • Saudi Arabia partners with HUMAIN and Applied Intuition for driverless trucks by 2030.
  • Vision 2030 initiative aims to revolutionize 440,000-kilometer road network.
  • Autonomous trucks to reduce costs, boost productivity, and minimize accidents.

Keeping Claude Code sessions for your repository in one place

I keep my Claude Code sessions in Dropbox so that I can pick up a conversation on another Mac. That works, but it comes with an annoyance: Claude Code names each project folder after the whole working…

  • Users can name project directory in Claude Code
  • Set CLAUDECODEPROJECTDIRNAME env var
  • Sessions stay in single folder across machines

Context Window Flooding: How Attackers Weaponize the Lost-in-the-Middle Attention Gap

An attacker does not need a clever jailbreak when they can make the model stop reading the system prompt through sheer volume.

  • Attackers manipulate context window to push system prompt into dead zone
  • Three context flooding attack types: padding, relevance flooding, tool result flooding
  • Agentic pipelines amplify attack surface through persistence and multi-agent orchestration

More from Sunday 6 September →