Free tool for product managers

HTTP status codes for product managers

Every API response and web page comes with a three-digit status code. Type a code or search a word to see what it means in product terms, what usually causes it, what the user should see, and who can fix it.

Look up a status code

100 Continue

The server received the start of a request and the client can send the rest.

Typical cause
Large uploads; handled automatically by browsers and libraries.
What the user should see
Nothing.
Who to ask
Nobody — you will rarely see this.

200 OK

The request worked.

Typical cause
Normal success for reading or updating data.
What the user should see
The data or confirmation they expected.
Who to ask
If the screen is still wrong, the frontend team.

201 Created

Something new was created — an order, a task, an account.

Typical cause
A successful POST.
What the user should see
Confirmation, and usually the new item.
Who to ask
Nobody.

202 Accepted

The request was accepted but the work happens later in the background.

Typical cause
Exports, imports, video processing, AI jobs, webhooks queued for processing.
What the user should see
A "processing" state and a way to see when it is done (notification, email, refresh).
Who to ask
Backend — ask how the user finds out it finished or failed.

204 No Content

It worked and there is nothing to return.

Typical cause
Successful delete or save with no response body.
What the user should see
A confirmation such as "Deleted".
Who to ask
Nobody.

301 Moved Permanently

This URL has moved for good; browsers and Google should use the new one.

Typical cause
Changed URLs, www → non-www, HTTP → HTTPS.
What the user should see
Nothing — they are sent to the new page automatically.
Who to ask
Whoever manages hosting/SEO. Important for keeping search rankings when URLs change.

302 Found (temporary redirect)

Go to another URL for now; the original URL stays valid.

Typical cause
Login redirects, temporary campaigns.
What the user should see
Nothing.
Who to ask
Hosting/backend. For permanent moves prefer 301/308.

304 Not Modified

The browser already has the latest version cached.

Typical cause
Normal caching — it makes pages faster.
What the user should see
Nothing.
Who to ask
Nobody. If users see stale content, ask about cache settings.

307 Temporary Redirect

Like 302, but the request method (e.g. POST) is kept.

Typical cause
API or login redirects.
What the user should see
Nothing.
Who to ask
Backend/hosting.

308 Permanent Redirect

Like 301, but the request method is kept.

Typical cause
Domain or URL changes on modern hosting platforms.
What the user should see
Nothing.
Who to ask
Hosting/SEO.

400 Bad Request

The request was invalid — missing, wrong or malformed data.

Typical cause
Validation failures, a frontend sending the wrong format, unexpected characters.
What the user should see
A specific message next to the field ("Due date can’t be in the past"), not a generic error.
Who to ask
Frontend and backend together — agree on validation rules and error messages.

401 Unauthorized

Not signed in — the login token is missing, invalid or expired.

Typical cause
Expired sessions, signing out in another tab, a bug that drops the token.
What the user should see
A prompt to sign in again, then return to the same page without losing their work.
Who to ask
Whoever owns authentication. Frequent 401s = session length or refresh-token problems.

402 Payment Required

Reserved for payment situations; some APIs use it for billing problems.

Typical cause
Unpaid invoices or exhausted credits on a third-party API.
What the user should see
Usually nothing directly — but a feature may stop working.
Who to ask
Whoever owns the vendor account and billing.

403 Forbidden

Signed in, but not allowed to do this.

Typical cause
Roles and permissions, sharing settings, plan limits, blocked regions or IPs.
What the user should see
A clear "You don’t have access" message and how to get access — never a blank page.
Who to ask
This is a product decision: who may do what. Engineers enforce it.

404 Not Found

The thing does not exist — or the user is not supposed to know it exists.

Typical cause
Wrong or old link, deleted record, typo in the URL, missing route.
What the user should see
A helpful not-found page with search or a way back.
Who to ask
Frontend/backend; for pages that moved, set up 301 redirects.

405 Method Not Allowed

This URL does not support that action (e.g. DELETE on a read-only endpoint).

Typical cause
Frontend calling the API the wrong way.
What the user should see
Should never reach users — it is a bug.
Who to ask
Developers.

408 Request Timeout

The server waited too long for the request.

Typical cause
Very slow networks, huge uploads.
What the user should see
A retry option.
Who to ask
Backend/infrastructure.

409 Conflict

The request clashes with the current state.

Typical cause
Duplicate email or username, two people editing the same item, double submit.
What the user should see
An explanation ("This email is already registered — sign in instead") or a choice of which change to keep.
Who to ask
Product + backend: decide the rule for conflicts.

410 Gone

It existed but has been removed permanently.

Typical cause
Deleted content, retired API versions.
What the user should see
A clear message that it no longer exists.
Who to ask
Backend/SEO. Helps Google drop old pages faster than 404.

413 Content Too Large

The upload or request is too big.

Typical cause
File size limits on the server or hosting platform.
What the user should see
The size limit shown before uploading, and a clear error if exceeded.
Who to ask
Product decides limits; backend/hosting enforce them.

415 Unsupported Media Type

The server does not accept this format.

Typical cause
Wrong file type or wrong Content-Type header.
What the user should see
Allowed formats listed on the upload control.
Who to ask
Frontend/backend.

422 Unprocessable Content

The format is fine but the data breaks a rule.

Typical cause
Business validation: end date before start date, quantity above stock.
What the user should see
A specific, fixable message.
Who to ask
Product defines the rules; backend enforces them.

429 Too Many Requests

Rate limited — too many requests in a short time.

Typical cause
Your own limits (anti-abuse) or a third-party API’s limits (OpenAI, Stripe, Google…).
What the user should see
"Please try again in a minute" — and the app should back off automatically.
Who to ask
Backend. For third-party limits: caching, batching, queues or a higher plan (cost decision).

451 Unavailable For Legal Reasons

Blocked for legal reasons, such as a court order or sanctions.

Typical cause
Legal takedowns, geo-restrictions.
What the user should see
An explanation where legally possible.
Who to ask
Legal + product.

500 Internal Server Error

Something crashed on the server — a bug or unhandled case.

Typical cause
Code errors, unexpected data, failed database queries.
What the user should see
An apology and a retry option; their input should not be lost.
Who to ask
Backend. Ask for the error ID from error tracking (e.g. Sentry) and when it started.

501 Not Implemented

The server does not support this feature.

Typical cause
Unfinished endpoints.
What the user should see
Should not reach users.
Who to ask
Backend.

502 Bad Gateway

A server in the middle got an invalid response from the one behind it.

Typical cause
App server crashed or restarting, deploy in progress, a broken upstream service.
What the user should see
Retry later; if widespread, a status message.
Who to ask
Infrastructure/backend — often an incident. Check the status page and recent deploys.

503 Service Unavailable

The service is temporarily down or overloaded.

Typical cause
Maintenance, traffic spikes, a dependency outage.
What the user should see
A friendly maintenance/outage message, ideally with a status page link.
Who to ask
Infrastructure. Ask about capacity, auto-scaling and communication to users.

504 Gateway Timeout

A server in the middle waited too long for another one.

Typical cause
Slow database queries, slow third-party APIs (including AI models), work that should be a background job.
What the user should see
A retry option; for slow operations, a "processing" state instead.
Who to ask
Backend — ask whether this should become an asynchronous job.

How to read a status code in two seconds

The first digit tells you almost everything:

Range Meaning Usually whose problem
1xx Informational — still in progress Rarely seen in products
2xx Success Nobody's — if the screen is wrong anyway, look at the frontend
3xx Redirect — go somewhere else Configuration, SEO, domain setup
4xx The request was wrong or not allowed Client side: input, login, permissions, limits
5xx The server failed Backend, infrastructure or a third-party service

Where you will see status codes

Status codes in product requirements

Good acceptance criteria describe what happens on failure, not only on success. For example:

Using status codes with an AI coding agent

Agents often write the happy path and a generic "Something went wrong". Ask explicitly: "Handle 401, 403, 404, 409, 429 and 5xx separately with these messages… Never show raw error text to users; log the details for us." Then test each case — many are easy to trigger by signing out, using a second account or disconnecting the network.

Learn more in APIs for product managers and authentication and authorization for product managers.

Start with week 1 — free

No credit card. Open the first week as a guest, create a free account to save progress and unlock week 2 and the AI mentor.

Start learning Compare plans