Want to know how much website downtime costs, and the impact it can have on your business?
Find out everything you need to know in our new uptime monitoring whitepaper 2021



Last updated: 4 February 2026
HTTP error codes are more than just messages shown to users, They’re signals from distributed systems. For engineers, SREs, and platform teams, these codes are often the first indicator of degraded reliability, misconfiguration, or upstream failure.
This guide focuses on how HTTP error codes behave in real production environments: behind CDNs, load balancers, reverse proxies, APIs, and microservices. Rather than just defining error codes, we explain why they happen, what they usually mean operationally, and what to check first when you encounter one.
| Code | Class | Client or Server | Typical production meaning |
|---|---|---|---|
| 400 | 4xx | Client | Malformed or invalid request |
| 401 | 4xx | Client/Auth | Missing or invalid authentication |
| 403 | 4xx | Client/Auth | Permission denied |
| 404 | 4xx | Client/App | Route or resource not found |
| 408 | 4xx | Client/Network | Client timed out waiting for response |
| 500 | 5xx | Server | Unhandled server-side failure |
| 502 | 5xx | Server/Infra | Bad gateway or upstream failure |
| 503 | 5xx | Server/Infra | Service unavailable (overload or maintenance) |
| 504 | 5xx | Server/Infra | Gateway timeout |
At a high level:
Operationally, this distinction is critical:
Misclassifying these errors can hide real incidents, trigger unnecessary alerts, and cause retries that amplify failures. Understanding the differences allows teams to design better alerts, retries, and incident responses.
The server could not process the request because it was malformed or invalid.
Authentication is required, but the request lacks valid credentials.
The server understood the request but refuses to authorise it.
The requested resource does not exist or cannot be located.
The server timed out waiting for the client to send the request.
The server encountered an unexpected condition that prevented it from fulfilling the request.
A server acting as a gateway or proxy received an invalid response from an upstream server.
In modern architectures, this usually means one service could not successfully communicate with another.
This error is most commonly generated by:
The server is currently unable to handle the request.
A gateway did not receive a timely response from an upstream server.
A 502 indicates an invalid response from an upstream service, while a 503 indicates the service is unavailable (often due to overload or maintenance).
Generally no. Search engines expect some 4xx responses. Persistent 404s on important pages, however, should be addressed.
Most teams alert on sustained increases in 5xx error rates, not individual errors.
Yes. CDNs often generate their own 5xx responses when origin servers fail to respond correctly.
HTTP error codes are most useful when combined with uptime monitoring, error rate alerting, and regional checks. Tools like StatusCake help teams detect, classify, and respond to these failures before users notice.
Share this
7 min read Artificial intelligence is making software easier to produce. That much is already obvious. Code that once took hours to scaffold can now be drafted in minutes. Boilerplate, integration logic, tests, refactors and small internal tools can be generated with startling speed. In some cases, even substantial pieces of implementation can be assembled quickly enough to
10 min read Whilst AI has compressed the visible stages of software delivery; requirements, validation, review and release discipline have not disappeared. They have been pushed into automation, runtime and governance. The real risk is not that the lifecycle is dead, but that organisations start acting as if accountability died with it. There is a now-familiar story about
4 min read How AI Is Shifting Software Engineering’s Primary Constraint For most of the history of software engineering, the primary constraint was production. Code was expensive, skilled engineers were scarce, and shipping features required concentrated human effort. Velocity was limited by how fast people could reason, implement, test, and deploy. That constraint shaped everything from team size,
5 min read Autonomous Code, Trust Boundaries, and Why Governance Now Matters More Than Ever In Part 1, we looked at how AI has reduced the cost of building monitoring tools. Then in Part 2, we explored the operational and economic burden of owning them. Now we need to talk about something deeper. Because the real shift isn’t
6 min read The Real Cost of Owning Monitoring Isn’t Code — It’s Everything Else In Part 1, we explored how AI has dramatically reduced the cost of building monitoring tooling. That much is clear. You can scaffold uptime checks quickly, generate alert logic in minutes, and set-up dashboards faster than most teams used to schedule the kickoff
5 min read AI Has Made Building Monitoring Easy. It Hasn’t Made Owning It Any Easier. A few months ago, I spoke to an engineering manager who proudly told me they had rebuilt their monitoring stack over a long weekend. They’d used AI to scaffold synthetic checks. They’d generated alert logic with dynamic thresholds. They’d then wired everything
Find out everything you need to know in our new uptime monitoring whitepaper 2021