Skip to content

HTTP status codes ​

HTTP status codes are a signal, not a diagnosis. They tell you which side of the request to inspect first. They do not tell you the business reason.

Authoritative sources: RFC 9110 §15, IANA registry, MDN.

Classes ​

RangeClassSupport translation
1xxInformationalRare in SaaS tickets. Ignore unless a proxy is misbehaving.
2xxSuccessThe HTTP layer accepted the request. GraphQL and some RPC APIs still hide errors here — see API error shapes.
3xxRedirectFollow the Location. Common with SSO, trailing slashes, HTTP→HTTPS, and CDN rules.
4xxClient errorThe request, as sent, will not succeed until something about this caller or this payload changes.
5xxServer errorSomething on our side or an upstream we own failed. Still check that the client is not hammering a dead URL.

Who emitted the code? ​

In modern SaaS the number often comes from a layer that is not the application:

LayerTypical codesHint
Browser extension / client(no HTTP)Console CORS / mixed-content / blocked by client
CDN / WAF403, 429, 502, 503, 504cf-ray, x-cache, server: cloudflare
Load balancer / gateway502, 503, 504No application log line for the request ID
App server400, 401, 403, 404, 409, 422, 500JSON body with your error shape
Auth provider302, 401, 400Redirect to IdP; OAuth error= query param — OAuth

A 403 from the WAF ("bot fight", geo, missing header) is a different ticket from a 403 from the app ("role cannot download invoices"). Read headers and body, not only the number.

Lookup ​

Deep pages for the codes that show up in real queues:

Memorize this short list first: 200, 201, 204, 301, 302, 304, 400, 401, 403, 404, 409, 422, 429, 500, 502, 503, 504.

2xx that still mean failure ​

StatusMeaningTrap
200OKGraphQL errors array; REST { success: false }; download of an error HTML page
201CreatedDuplicate create if the client retried without idempotency
202AcceptedAsync job later failed — the HTTP call is not the job
204No ContentUI expected a body and looks "blank"

Always open the response body. Always. See API error shapes.

Redirects (3xx) in two minutes ​

  1. Is Location still on your domain, or did they bounce to an IdP?
  2. Is it HTTP→HTTPS or www vs apex? Bookmark / mixed-content issues follow.
  3. 304 Not Modified: the client used a cached version. "Disable cache" in Network when reproducing.

If SSO loops (302 → 302 → 302), capture a HAR with Preserve log on. See HAR files.

Public craft handbook. Product runbooks are excluded from this build.