Developers · 10 guides

Developer errors

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

DevelopersHTTP status codes, explained properlyEvery 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.Developers401 Unauthorized vs 403 Forbidden401 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.Developers404 Not FoundWhat 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.Developers429 Too Many RequestsHTTP 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.Developers500 Internal Server ErrorHTTP 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.Developers502 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.Developers418 I'm a teapotThe April Fools' status code that the HTTP spec now has to reserve forever.DevelopersCommon JavaScript errors, explainedWhat "Cannot read properties of undefined", "x is not a function", CORS and JSON.parse errors mean, with exact browser messages and fixes.DevelopersCommon Python errors, explainedIndentationError, NameError, 'NoneType' object is not subscriptable, KeyError, ModuleNotFoundError and more: what each Python error means and how to fix it.DevelopersFamous software bugs in historyAriane 5, Mars Climate Orbiter, Therac-25, Knight Capital, the Patriot clock, Y2K and CrowdStrike: what went wrong, per official reports, and the lessons.

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), plus the RFCs that add codes like 429. For language errors we use the official references: MDN’s JavaScript error reference and the Python built-in exceptions documentation.

A quick triage order#

You seeStart with
4xx statusThe request: URL, method, auth headers, body. See the status code reference.
5xx statusThe server and anything in front of it: app logs, proxy logs, upstream health. See 500 and 502 vs 504.
JavaScript TypeErrorThe value on the left of the dot or the call. See JavaScript errors.
Python tracebackThe last line first, then the frame just above it. See Python errors.

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