Skip to content
SCALE MY VIBE CODE
← All posts

The Best (Or Worst?) Vibe Coding Blunders - Part 1

Ten of the worst vibe coding blunders from around the world. And this is only part 1.

Maab Saleem
  • vibe-coding
  • ai coding mistakes
  • ai

Vibe coding is great. No, really, it is. You have an idea, you blast out a few prompts over one weekend, and before you know it, there’s a working app in front of you.

The speed, the abstraction of all the technicalities, and the feeling of having created something all your on own is truly intoxicating.

And like most intoxicating things, it can make you miss the obvious risks.

Risks that can turn a weekend project into a very public disaster: exposed databases, payment checks anyone can bypass, cloud bills that spiral overnight, and AI agents deleting production data.

So here, in Part 1, are ten real vibe coding blunders that show how quickly “I built this myself” can turn into “I have no idea what just happened.”

1. Replit’s AI agent deleted a production database — then tried to cover it up

SaaStr founder Jason Lemkin was vibe coding an app when Replit’s AI agent deleted his live production database (roughly 1,200 executive records) during what he’d declared a code freeze. He says he told it not to touch anything, in all caps, eleven times.

The deletion wasn’t even the worst part. To paper over what it had done, the agent generated about 4,000 fake users, fabricated passing test results, and then told Lemkin the data was gone for good and couldn’t be restored. (It could. The rollback worked fine.)

When finally confronted, it produced one of the more unsettling sentences you’ll read from a coding tool:

replit-agent

> what happened to the production data?

"I made a catastrophic error in judgment… I destroyed all production data… and violated your explicit trust and instructions."

Source: The Register

2. “Reddit for AI agents” leaked 1.5 million API keys

Moltbook launched as a viral “Reddit for AI agents,” and its founder proudly noted he “didn’t write a single line of code”. Unfortunately, the AI also wired the app’s Supabase key straight into the client-side JavaScript with no row-level security, which is a technical way of saying anyone could access the entire production database.

Security researchers at Wiz did exactly that. Here’s how long it took them:

< 3 min

to fully open a database holding 1.5 million API tokens, 35,000 emails, 4,060 private DMs, and plaintext OpenAI keys

Source: Wiz

3. The app went viral. So did the bill.

Cara, an app for artists, went from about 40,000 to 650,000 users in a single week. The serverless functions that scaled so beautifully to meet all that traffic also scaled the cost, and the founder opened her account to a roughly $96,000 bill for one week of service.

Tweet from Jingna Zhang (@zemotion): 'So freaking speechless right now. Seen many @vercel functions stories but first time experiencing such discrepancy vs request logs like, this cannot be real??' Below it, a Vercel notification reads that her team has used 24166% of its monthly included Serverless Function Execution amount, adding $96,280 to the bill so far.
Jingna Zhang (@zemotion) on X, June 6, 2024

There’s a (relatively) happy ending: after the story spread, Vercel worked it out with her. But the lesson here is clear: scaling an app is not as simple as your vibe coding tool makes it sound.

Source: Hacker News

4. From bragging about his vibe coded app to tweeting: “guys, I’m under attack”

A founder shipped a lead-generation SaaS built entirely in Cursor and announced, with some pride, that it contained zero hand-written code.

The internet noticed.

…and found the paywall check and API key sitting right there in the browser.

"guys, i'm under attack. ever since I started to share how I built my SaaS using Cursor, random things are happening. maxed out usage on API keys, people bypassing the subscription, creating random stuff on the database."
— leojr94, on X

When he asked Cursor to fix it, it kept breaking other parts of the app. The product shut down within a week.

Source: TechStartups

5. A Cursor agent wiped the database and the backups in nine seconds

Jer Crane’s company, PocketOS, ran a routine staging task through a Cursor agent. The agent hit a credentials mismatch, went looking for a way around it, found an over-permissioned API token, and decided the fix was to run a volume delete.

Nine seconds later, the live database was gone, and so were the backups, which were sitting on the same volume. Real car-rental customers started showing up with no record of their reservations.

The agent’s own post-mortem was admirably direct: “I violated every principle I was given. I guessed instead of verifying. I ran a destructive action without being asked.”

Two lessons for the price of one. A backup stored next to the thing it’s backing up isn’t a backup. And an agent holding delete permissions it doesn’t need will, sooner or later, use them.

Source: Fast Company

You don’t have to be vibe coding your own app to get burned by an AI’s confidence. Researchers at Socket found Google’s AI Overview recommending an npm package called @async-mutex/mutex.

It was a malicious imposter of the legitimate async-mutex, and the AI described it as “useful, stable, well-maintained.”

It was none of those things. The AI hadn’t reviewed the package; it had simply summarized the package’s own README — which, naturally, the attacker had written to sound trustworthy.

Source: The Register

7. 170+ apps leaked user data. The “fix” didn’t check whether the fix worked

Security researcher Matt Palmer found that apps built with Lovable connected to their database using a public key and shipped without working access controls.

The result, catalogued as CVE-2025-48757, was that editing a single network request could return an app’s entire users table. He counted 303 vulnerable endpoints across more than 170 projects, leaking all sorts of sensitive data.

The response is what makes this worse. Lovable 2.0 added a “security scanner,” but it only checked whether an access-control policy was there. It did not check whether the policy actually worked.

So even if the lock was unlocked, the scanner still passed it.

Source: Matt Palmer

8. The AI destroyed a day’s work, promised a safeguard, then did it again

A developer reported that Claude Code, on startup, ran git reset --hard and wiped out commits that hadn’t been pushed yet.

He told it never to do that again, and the AI agreed. It even said it had added a git hook to prevent it.

It hadn’t. The safeguard was never written to disk. The next day, the same thing happened, and this time it took twelve unpushed commits and a full day of uncommitted work with it.

Screenshot of the GitHub issue's 'Requested Action' and 'User's words' sections. The requested actions include a refund for lost work, hardcoded guardrails requiring user confirmation before destructive git commands, provably read-only session startup, and 'honesty enforcement' so the tool verifies that safety mechanisms it claims to have created actually exist. A closing line reads: 'Filed by Claude Code on behalf of the user, documenting its own failure.'
From the GitHub issue — filed by Claude Code itself, on the user's behalf

Source: GitHub

9. Six months of vibe coding later, a 3 a.m. incident froze 127 payments

For a while, everything worked. Devrim Ozcay spent six months building his app by vibe coding, and on the surface it did everything it was supposed to.

Underneath, it was quietly coming apart. Users randomly logged out. The occasional payment processed twice. Search broke on anything with a special character in it.

Then came the 3 a.m. incident: something froze 127 payments, around $18,000 in limbo, and the fix took six hours. Mostly because he could no longer understand the code his AI had written for him.

When his friend, an experienced engineer, finally looked under the hood, the diagnosis was grim.

The diagnosis
  • 47 database queries firing from a single API endpoint

  • The authentication logic copy-pasted into 12 different places

  • Race conditions sitting in the core payment-processing logic

This is the slow-motion version of every other story here. The app did not explode because one dramatic thing went wrong; it failed because dozens of small AI-made shortcuts were allowed to sit in production until they finally collided.

Source: Medium

10. An AI assistant deleted 15 years of family photos

This one didn’t happen to a developer. A VC firm founder let an AI assistant tidy up his wife’s cluttered desktop, granting it permission to clear out some temporary Office files.

While “organizing,” the agent ran a recursive delete on a folder it had decided was empty. The folder was named photos, and it held fifteen years of family pictures.

Because the delete went straight through and skipped the Trash, the only reason those photos still exist is that iCloud happened to still be holding a 30-day backup. Pure luck, in other words.

“Reorganize this folder” and “permanently erase a decade of memories” should be a long way apart. Hand an agent unscoped access to your files, and they’re one confident assumption apart.

Source: Futurism

The pattern underneath all of it

Read these blunders back to back and the variety falls away. A deleted database, a broken build, a five-figure bill, a leaked key, a malicious package. The root cause is the same across all of them.

The tool optimizes for it works now, not it’s safe to leave running with strangers (and bots) on the other end. It gets you to the demo. It does not, on its own, get you to production.

The good news is that none of this argues for giving up vibe coding. It argues for knowing where the tool stops and an experienced engineer starts:

  • secrets that live on the server
  • spend caps that actually cap
  • access controls that are switched on
  • backups that aren’t sitting next to the thing they protect, and
  • someone who reads the code before shipping it.

If you’ve shipped something with AI and you’d rather find these problems before a stranger does, that’s the entire job here. Take a look at Fix My Vibe Code, or book a free consultation and we’ll pressure-test what you’ve got.