Fix Guides

Something broke. Here's how to fix it.

128 plain-language guides for when a website, app or server stops working. Each one says what the error means, why it happens, and how to fix it.

Error codes

All 10 →

The page shows a number instead of your site. Here's what each one means.

500 Internal Server Error Your server hit an error it didn't handle. The cause is in the server's error log: usually a code bug, a bad config change, a failed plugin or a lost database. 502 Bad Gateway The server in front of your app got a bad answer, or none, from your app. Usually the app has crashed, isn't running, or is listening on the wrong port. 503 Service Unavailable The server is up but can't take requests right now: overloaded, stuck in maintenance mode, or out of resources. Here's how to tell which. 504 Gateway Timeout Your app took too long to answer and the server in front of it gave up. Usually a slow database query, a slow outside API, or an overloaded server. 404 Not Found The page doesn't exist at that address. Usually a deleted or moved page, a typo in a link, or a site migration that broke URLs. Fix the link or add a redirect. 403 Forbidden The server understood the request but won't allow it. Usually file permissions, a missing index page, or a firewall or security rule blocking the visitor. 400 Bad Request The server rejected the request as malformed. For visitors it's often bad cookies; for apps, the data sent isn't what the server expects. 401 Unauthorized The request had no valid login or key. For people, log in again. For apps and APIs, the token or API key is missing, expired, or wrong. 408 Request Timeout The server closed a connection because the browser didn't finish sending its request in time. Usually a slow or unstable connection, or a large upload. 429 Too Many Requests A rate limit was hit: too many requests too fast. On your site, check rate-limit and bot rules. In your app, slow down calls to that API.

Cloudflare errors

All 8 →

A Cloudflare error page means Cloudflare couldn't get a proper answer from your server.

Cloudflare error: what it means and how to fix it A Cloudflare error page almost always means Cloudflare is fine but couldn't get a proper answer from your own server. The number says which part failed. Cloudflare error 522: connection timed out Error 522: Cloudflare couldn't connect to your server in time. The server is overloaded or offline, or a firewall is silently dropping Cloudflare. Cloudflare error 521: web server is down Error 521: your server refused Cloudflare's connection. The web server is stopped or a firewall is blocking Cloudflare. Start it, allow Cloudflare. Cloudflare error 520 Error 520: your server sent Cloudflare an empty or unexpected response. Usually a crash, a security plugin blocking Cloudflare, or response headers too large. Cloudflare error 524: a timeout occurred Error 524: your server accepted the request but took longer than Cloudflare's 125-second limit to answer. Find the slow page and the slow step in it. Cloudflare error 523: origin is unreachable Error 523: Cloudflare can't find a route to your server. Usually the IP address in your DNS records is wrong or out of date, or the host's network is down. Cloudflare 502 Bad Gateway A Cloudflare-branded 502 usually means your own server returned the 502 and Cloudflare passed it on. Fix the app behind your web server, not Cloudflare. Cloudflare Ray ID error The Ray ID isn't the error. It's a reference number for the request that failed. Use it with the error code to find that exact request in Cloudflare.

Hosting

All 11 →

Problems that start with your hosting company or deployment platform.

Vercel deployment failed Open the build logs on the deployment's page: the first error line is the cause. Usually a build command failing, a missing environment variable, or bad config. Vercel error Vercel's error page shows a code like FUNCTION_INVOCATION_FAILED or DEPLOYMENT_NOT_FOUND. It says whether your function crashed, timed out, or is missing. Netlify build failed Read the deploy log from the first error. Usual causes: the build command, a missing environment variable, a different Node version, or the repo link. Netlify not working Check Netlify's status page, then whether the latest deploy succeeded. "Page not found" on refresh usually means a single-page app is missing its rewrite rule. Heroku error Heroku logs an error code with every failure: H10 app crashed, H12 request timeout, H14 no web dynos, R14 memory exceeded. Run heroku logs to see which. AWS error Check the AWS Health Dashboard first, then the service that failed. Most AWS outages for one site are security group rules, permissions, or a resource limit. GoDaddy website down Check whether it's the domain, the hosting, or the site itself. Error codes point to hosting or code; "can't be reached" points to the domain or DNS. Is DigitalOcean down? Check DigitalOcean's status page. If it's fine, your Droplet is the problem: use the Recovery Console to get in even when the network or SSH is down. Bluehost error Read the error first. On Bluehost shared hosting, most errors are a WordPress plugin, a broken .htaccess file, account resource limits, or the domain's DNS. SiteGround error SiteGround's own guide: check if the site loads from elsewhere, then read the error. 403 is permissions or .htaccess, 404 a missing file, 500 configuration. Is Hostinger down? Check Hostinger's status page. If Hostinger is fine, check your plan's resource usage, your domain's DNS, and your site's own errors, in that order.

Frameworks

All 9 →

Errors from the framework your site or backend is built with.

Can't find yours?

One click checks your site and gives you a report of what's wrong with yours, not just what usually goes wrong. Your first report is free.

Run your free report