📖 Developer Reference Guide

HTTP Status Code Reference

Fast, searchable encyclopedia of standard RFC and Cloudflare HTTP status codes with causes and troubleshooting tips.

1001xx

Continue

Server has received the request headers and the client should proceed to send the body.

Common Cause: Sent in response to Expect: 100-continue header.
Troubleshooting: Ensure client sends large request bodies only after receiving 100.
1011xx

Switching Protocols

Server is switching protocols according to the Upgrade header sent by the client.

Common Cause: Standard handshake response for WebSocket connections.
Troubleshooting: Common in real-time WebSockets and HTTP/2 upgrades.
2002xx

OK

The standard response for successful HTTP requests.

Common Cause: The requested resource was successfully fetched or processed.
Troubleshooting: Standard response for GET and successful POST/PUT.
2012xx

Created

The request has succeeded and led to the creation of a new resource.

Common Cause: Returned after a successful POST request creating a record.
Troubleshooting: Should include a Location header with URI of new resource.
2022xx

Accepted

Request received for processing, but processing has not completed.

Common Cause: Used for asynchronous background batch tasks.
Troubleshooting: Provide a status endpoint or task ID for polling.
2042xx

No Content

Request succeeded, but no message body is returned.

Common Cause: Common in DELETE requests or form submissions without redirect.
Troubleshooting: Do not send a response body with 204.
3013xx

Moved Permanently

Resource has been assigned a new permanent URI.

Common Cause: Site migration, URL structure change, or HTTP to HTTPS upgrade.
Troubleshooting: Search engines transfer SEO link juice to the new Location.
3023xx

Found (Temporary Redirect)

Resource resides temporarily under a different URI.

Common Cause: Temporary maintenance redirect or login gateway.
Troubleshooting: Browsers may switch POST to GET on 302; use 307 if preserving method.
3043xx

Not Modified

Resource has not been modified since last requested (cached).

Common Cause: Matched If-Modified-Since or ETag headers.
Troubleshooting: Saves client bandwidth by serving directly from browser cache.
3073xx

Temporary Redirect

Target resource resides temporarily under a different URI with method preserved.

Common Cause: Guarantees the HTTP method (e.g. POST) remains unchanged upon redirect.
Troubleshooting: Prefer over 302 for non-GET API requests.
3083xx

Permanent Redirect

Target resource has permanent new URI with HTTP method preserved.

Common Cause: Modern permanent redirect preserving request body & method.
Troubleshooting: Prefer over 301 for REST APIs.
4004xx

Bad Request

Server cannot or will not process request due to client error.

Common Cause: Malformed syntax, invalid JSON, or missing required payload parameters.
Troubleshooting: Validate input schemas and return specific error details in JSON.
4014xx

Unauthorized

Authentication is required and has failed or has not yet been provided.

Common Cause: Missing Bearer token, expired session, or invalid credentials.
Troubleshooting: Check Authorization header; include WWW-Authenticate challenge.
4034xx

Forbidden

Server understood request, but refuses to authorize it.

Common Cause: Insufficient permissions, IP block, or CORS origin rejection.
Troubleshooting: Unlike 401, authenticating will make no difference without permissions.
4044xx

Not Found

Server cannot find the requested resource.

Common Cause: Incorrect URL path, deleted clip, or missing file identifier.
Troubleshooting: Ensure route spelling and IDs match database records.
4054xx

Method Not Allowed

Request method is known by server but not supported by target resource.

Common Cause: Sending a POST to a GET-only route.
Troubleshooting: Server must send an Allow header listing valid methods.
4084xx

Request Timeout

Server timed out waiting for the client request.

Common Cause: Slow client upload or stalled connection.
Troubleshooting: Client may repeat request without modifications later.
4094xx

Conflict

Request conflicts with current state of the server.

Common Cause: Edit conflicts, duplicate unique key entries in database.
Troubleshooting: Provide conflict resolution data in payload.
4134xx

Payload Too Large

Request entity is larger than limits defined by server.

Common Cause: Uploading file larger than 10MB without direct storage presigning.
Troubleshooting: Use chunked or presigned Cloudflare R2 direct uploads.
4224xx

Unprocessable Entity

Syntax is correct but semantic instructions are invalid.

Common Cause: Form validation failure (e.g. invalid email format, negative amount).
Troubleshooting: Standard status code for API validation error responses.
4294xx

Too Many Requests

User has sent too many requests in a given amount of time (rate limited).

Common Cause: Exceeded API quota, brute-force defense triggered.
Troubleshooting: Include a Retry-After header indicating seconds until unlock.
5005xx

Internal Server Error

Server encountered an unexpected condition preventing it from fulfilling request.

Common Cause: Uncaught exceptions, unhandled Promise rejections, null reference errors.
Troubleshooting: Check server logs, error tracking (Sentry), and add try/catch blocks.
5025xx

Bad Gateway

Server acting as gateway/proxy received an invalid response from inbound server.

Common Cause: Backend node process crashed or nginx proxy cannot reach application.
Troubleshooting: Check backend application health and internal ports.
5035xx

Service Unavailable

Server is currently unable to handle request due to temporary overload or maintenance.

Common Cause: Deployment in progress, CPU exhaustion, database pool full.
Troubleshooting: Include Retry-After header if downtime duration is known.
5045xx

Gateway Timeout

Server acting as gateway did not receive timely response from upstream server.

Common Cause: Database query deadlock, long-running external API fetch.
Troubleshooting: Increase gateway timeout or optimize slow background queries.
520Cloudflare

Web Server Returned an Unknown Error

Cloudflare received an empty, unknown, or unexpected response from origin server.

Common Cause: Origin web server crashed while returning response headers.
Troubleshooting: Inspect origin web server error logs for segmentation faults or crashes.
521Cloudflare

Web Server Is Down

Origin server refused connections from Cloudflare.

Common Cause: Origin service (e.g. Node/Nginx) stopped or origin firewall blocked Cloudflare IPs.
Troubleshooting: Whitelist Cloudflare IP ranges in origin firewall (iptables/UFW).
522Cloudflare

Connection Timed Out

Cloudflare was unable to establish a TCP handshake with origin server.

Common Cause: Network routing issues, overloaded server dropping SYN packets.
Troubleshooting: Check server resource usage and ping response times.
524Cloudflare

A Timeout Occurred

Cloudflare established TCP connection but origin didn’t reply within 100 seconds.

Common Cause: Origin processing long heavy task (e.g. video rendering, large report export).
Troubleshooting: Move heavy tasks to asynchronous job queues or WebSockets.