---
title: "Developer errors"
url: https://erroneo.us/developers/
description: "Plain-English references for HTTP status codes, common JavaScript and Python error messages, and the famous software bugs that changed engineering."
type: section
section: "Developers"
date_modified: 2026-10-20
publisher: erroneo.us
license: All rights reserved. Quote with attribution and a link.
---

# Developer errors

> Error messages decoded: what the spec actually says, what usually causes it, and how to fix it fast.

- [Developers HTTP status codes, explained properly Every HTTP status code from 100 to 511 in plain English: what each means per RFC 9110, the usual cause, and the common mistakes with 401, 404, 429 and 5xx.](https://erroneo.us/developers/http-status-codes/)
- [Developers 401 Unauthorized vs 403 Forbidden 401 means authenticate and try again; 403 means credentials will not help. The RFC 9110 rules, OAuth bearer-token cases, and when 404 is the safer answer.](https://erroneo.us/developers/http-401-vs-403/)
- [Developers 404 Not Found What HTTP 404 Not Found really means under RFC 9110, how it differs from 410 Gone, why soft 404s hurt SEO, and how to find and fix broken URLs on your site.](https://erroneo.us/developers/http-404-not-found/)
- [Developers 429 Too Many Requests HTTP 429 means you hit a rate limit. What RFC 6585 says, how to honor Retry-After, exponential backoff with jitter in code, and the new RateLimit headers draft.](https://erroneo.us/developers/http-429-too-many-requests/)
- [Developers 500 Internal Server Error HTTP 500 means the server hit an unexpected condition. How to find the real cause in logs, the usual culprits, and why stack traces must never reach users.](https://erroneo.us/developers/http-500-internal-server-error/)
- [Developers 502 Bad Gateway vs 504 Gateway Timeout (and 503) 502, 503 and 504 all mean something behind the proxy failed. How to tell them apart, read nginx, Caddy and load balancer logs, and fix the usual causes.](https://erroneo.us/developers/http-502-vs-504/)
- [Developers 418 I'm a teapot The April Fools' status code that the HTTP spec now has to reserve forever.](https://erroneo.us/developers/http-418-im-a-teapot/)
- [Developers Common JavaScript errors, explained What "Cannot read properties of undefined", "x is not a function", CORS and JSON.parse errors mean, with exact browser messages and fixes.](https://erroneo.us/developers/javascript-errors/)
- [Developers Common Python errors, explained IndentationError, NameError, 'NoneType' object is not subscriptable, KeyError, ModuleNotFoundError and more: what each Python error means and how to fix it.](https://erroneo.us/developers/python-errors/)
- [Developers Famous software bugs in history Ariane 5, Mars Climate Orbiter, Therac-25, Knight Capital, the Patriot clock, Y2K and CrowdStrike: what went wrong, per official reports, and the lessons.](https://erroneo.us/developers/famous-software-bugs/)

## Read the error, then read the spec

An error message is the most honest thing a computer will tell you all day, but it is written for the machine’s convenience, not yours. `Cannot read properties of undefined` tells you *where* something was missing, not *why*. A `502 Bad Gateway` tells you that a proxy got a bad response, but not which upstream failed. This section translates the common ones.

For HTTP we work from the current standard, [RFC 9110 (HTTP Semantics)](https://www.rfc-editor.org/rfc/rfc9110), plus the RFCs that add codes like `429`. For language errors we use the official references: [MDN’s JavaScript error reference](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors) and the [Python built-in exceptions documentation](https://docs.python.org/3/library/exceptions.html).

## A quick triage order

| You see | Start with |
|---|---|
| `4xx` status | The request: URL, method, auth headers, body. See [the status code reference](https://erroneo.us/developers/http-status-codes/). |
| `5xx` status | The server and anything in front of it: app logs, proxy logs, upstream health. See [500](https://erroneo.us/developers/http-500-internal-server-error/) and [502 vs 504](https://erroneo.us/developers/http-502-vs-504/). |
| JavaScript `TypeError` | The value on the left of the dot or the call. See [JavaScript errors](https://erroneo.us/developers/javascript-errors/). |
| Python traceback | The *last* line first, then the frame just above it. See [Python errors](https://erroneo.us/developers/python-errors/). |

And when you want perspective on why all of this matters, read [famous software bugs](https://erroneo.us/developers/famous-software-bugs/): overflow, unit and race-condition errors that cost rockets, lives and fortunes, each traced to its official investigation.

---
Source page: https://erroneo.us/developers/ · More: https://erroneo.us/llms.txt
