# What an Error Message Is Actually Telling You

Here's the moment this guide is for: you run your code, and instead of working, the screen fills with
red text. Your stomach drops. The words look like an accusation, or a wall of nonsense, and the instinct
is to either retype the command and hope, or paste the whole thing somewhere and beg.

Stop. That red text is the single most helpful thing you'll see all day. An error message is the computer
telling you - usually with surprising precision - *exactly* what it tried to do, where it gave up, and
often why. The people who look like wizards aren't smarter than you; they just learned to **read the
message instead of fearing it.** That's a learnable skill, and it's the "A" of debugging. By the end of
this guide, errors will feel less like a slammed door and more like a note left on the fridge.

## How to read this

- **Mid-meltdown right now?** Jump to the cheat-card at the top of
  [Phase 3: What to Actually Do With One](03-what-to-do.md) - symptom on the left, your first move on the
  right.
- **Want it to finally make sense?** Read in order. Each phase builds on the last: first *what an error
  is*, then *the families you'll keep meeting*, then *the calm method* for working through any of them.

## The phases

1. **[An Error Is Information, Not an Insult](01-information-not-insult.md)** - the reframe, plus the
   anatomy of a typical error: its *type*, its *message*, and its *location*. Annotated, in two languages.
2. **[The Common Error Families](02-common-families.md)** - the handful you'll meet constantly: syntax vs
   runtime, null/undefined, type mismatches, not-found, and permission denied. What each usually means.
3. **[What to Actually Do With One](03-what-to-do.md)** - the calm method: read it literally, find *your*
   line, reproduce it small, search the *exact* message, and when to rubber-duck. With a cheat-card.

> This guide is about reading a *single* error. When one error comes with a long, multi-line trail of file
> names and line numbers, that's a **stack trace** - its own skill, covered in
> [Reading a Stack Trace](/guides/reading-a-stack-trace).
