Skip to content
zero2vibecodelearn vibe coding
Level 0 · What vibe coding is 7 min Reviewed by the author · Aug 4, 2026

Where it quietly fails

The five failure modes that cost people real money — hallucinated APIs, plausible-but-wrong logic, security blind spots, runaway cost, and silent scope creep — and the tell for each one.

Level 0 · 0 / 3 lessons0%

No hands-on task in this lesson — just read it through and answer the questions.

Vibe coding is genuinely powerful. It also fails in specific, repeatable ways, and a course that only sells you the good half is worth nothing.

Here are the five that actually cost people money. Each has a tell.

1. Hallucinated APIs

The agent calls a function that does not exist. Not a typo — a function invented because it should exist. The name fits the library’s naming style perfectly. It reads like documentation.

Error: db.findUserByEmail is not a function

There is no such method. There is a find that takes a filter, and the agent generated the friendlier-sounding thing.

The tell: an error saying something “is not a function”, “is not defined”, “has no attribute”, or a package name that fails to install. This failure is loud, which makes it the nicest one on the list — you find out immediately.

Note

This gets worse the more obscure the library. Popular tools appeared thousands of times in training; a niche package appeared twice, so the details get smoothed into whatever is most common.

2. Plausible but wrong

The code runs. It produces output. The output is wrong.

You ask for a discount calculation. You get this:

final = price - (price * discount)

Correct — if discount is 0.2. If your form collects 20 for twenty percent, every item is suddenly free or negative. Nothing crashes. The tests you did not write do not fail. You find out from a customer.

The tell: there is none, from the outside. This is why you run the thing with real-ish values and check the numbers by hand once. One deliberate check with a known answer catches most of these.

That exact discount bug, with three ways to meet it. One of them ends at the customer.

Quick check

Which failure will you find out about fastest?

3. Security blind spots

The agent optimises for a thing that works. Security is a constraint you did not mention, so it is not in the target.

Common results, all of which run beautifully:

  • Your API key written directly into a file that ends up published.
  • An upload feature that accepts any file, of any size, from anyone.
  • A page that shows you your own data, and also anyone else’s if you change a number in the URL.
  • User input dropped straight into a database query — the oldest hole there is.

The tell: ask yourself who else can reach this. If the answer is “anyone with the link”, it needs a human read before it goes live. Level 3 gives you a checklist for exactly this.

Important

Never paste an API key or password into a chat, a , or a source file “just for now”. Just-for-now is how keys end up in public repositories. Level 4 covers where they actually go.

4. Cost blind spots

Some code is correct and still ruinous.

An image is resized on every single page load instead of once. A paid AI call sits inside a loop over every row. A background job polls a service every second forever because nobody said how often.

The agent has no idea what your budget is, what a request costs, or how many users you expect. You never said. So it picked whatever was simplest to write.

The tell: ask “what happens if a thousand people use this at once?” and “does this call anything I pay for?” Those two questions take ten seconds and catch nearly all of it.

Quick check

Which question is most likely to surface a cost problem before you ship?

5. Silent scope creep

You asked for one button. You got the button, plus a of three unrelated files, plus a new dependency, plus a renamed folder.

Every individual change may be defensible. Together they mean you can no longer tell what you approved, and the next thing that breaks has five possible causes instead of one.

The tell: look at the list of changed files. If files you did not expect are in it, ask why before you accept anything.

Quick check

An agent changed nine files to add one button. What is the right response?

The pattern behind all five

An agent is rewarded for producing something that looks finished. It is not rewarded for saying “I am not sure”, “this will be expensive”, or “you have not told me who is allowed to see this”.

So it fills gaps. Always. Confidently.

Which gives you the only rule you need for the rest of this course: anything touching secrets, money, deletion, or other people’s data gets read by a human before it ships. Everything else you can learn by breaking.

Tip

None of this means “do not vibe code”. It means you now know the five places to look, which takes about a minute per feature. That minute is the whole difference between a good story and an expensive one.

Why does an AI agent invent functions that do not exist?
What is the most dangerous kind of AI coding mistake?

Check your understanding

Answered 0/3
Mode:

What makes a "plausible but wrong" result more dangerous than a crash?

An agent uses a library function you have never heard of, and the code fails with "is not a function". What is the likely cause?

Which of these is a cost blind spot rather than a correctness bug?

Finish the task in the terminal and answer the questions to complete the lesson.

📝 My notes

Saved automatically in this browser · shows up on the Notes page.

Lesson Q&A

What makes a "plausible but wrong" result more dangerous than a crash?

A crash reports itself. Wrong-but-running code waits until it matters, often in front of a user.

An agent uses a library function you have never heard of, and the code fails with "is not a function". What is the likely cause?

This is the classic hallucinated API. The name sounds right for that library, and nothing in the model checked whether it exists.

Which of these is a cost blind spot rather than a correctness bug?

It works perfectly. It just bills you every time someone opens the page.

Which failure will you find out about fastest?

Hallucinated names crash on the first run. The other three run perfectly and cost you later.

Which question is most likely to surface a cost problem before you ship?

Cost problems hide in frequency: per user, per request, per second. Ask about frequency and paid calls explicitly.

An agent changed nine files to add one button. What is the right response?

Unexplained edits are future debugging cost. Asking is cheap now and expensive later.

Related reading on the blog

Move between lessons with · search with ⌘K