Speed and security

Troubleshooting common hosting errors

Most website errors fall into four groups: the server or application failed (5xx), access was refused or the page is missing (4xx), the domain does not resolve (DNS), or the secure connection failed (SSL). The table below tells you which group you are in and what to check first.

Updated 7 min read

Start here: which kind of error is it?

When a website shows an error, the message itself tells you where to look. HTTP status codes, defined in RFC 9110, follow a simple pattern:

  • 5xx (500, 502, 503, 504): the request reached a server, and something on the server side failed.
  • 4xx (403, 404): the server answered, but refused the request or could not find the page.
  • Browser errors such as DNS_PROBE_FINISHED_NXDOMAIN: the browser never reached your server because the domain did not resolve.
  • SSL errors such as ERR_SSL_PROTOCOL_ERROR: the browser reached a server but could not set up a secure connection.

Before anything else, do these three quick checks. They solve a surprising number of problems:

  1. Is it only you? Open the site on mobile data instead of Wi-Fi, or ask someone in another city. If it works for them, the problem is local caching or your network.
  2. What changed? A plugin update, a new theme, an edited .htaccess, a DNS change or a PHP version switch in the last day is the most likely cause.
  3. Is the hosting account active? An unpaid renewal can suspend an account. Check the client area, and see paying an invoice and renewing hosting if needed.

Error reference table

Error What it means First checks Detailed fix
500 Internal Server Error The server hit an unexpected problem running your site Error log; recently changed plugin or theme; .htaccess syntax; PHP version Fix 500 errors
502 Bad Gateway A proxy or gateway got an invalid response from the server behind it Is PHP or the app process running? Is a CDN or proxy pointing at the right origin? See the 502 section below
503 Service Unavailable The server is temporarily unable to handle the request Resource limits reached; maintenance mode left on; traffic spike Fix 503 errors
504 Gateway Timeout A proxy waited too long for the server to respond Slow database queries; long running scripts; server overloaded See the 504 section below
403 Forbidden The server understood the request but refuses to allow it File and folder permissions; missing index file; .htaccess deny rules; security plugin or IP block Fix 403 errors
404 Not Found No resource exists at that URL Typo in link; deleted or renamed page; WordPress permalinks; files uploaded to the wrong folder See the 404 section below
Too many redirects (ERR_TOO_MANY_REDIRECTS) Two rules keep redirecting the browser in a loop HTTP to HTTPS rule fighting a CDN setting; site URL mismatch; www vs non www rules Fix redirect loops
Error establishing a database connection The application cannot log in to its database Database name, user, password and host in the config file; database server status Fix database connection errors
DNS_PROBE_FINISHED_NXDOMAIN The domain name does not resolve to any address Nameserver spelling; domain expiry; recent DNS change still propagating DNS propagation and pointing nameservers
ERR_SSL_PROTOCOL_ERROR The browser could not complete a secure (TLS) connection SSL not installed for this domain; domain pointing to the wrong server; device date and time Fix SSL warnings
NET::ERR_CERT_COMMON_NAME_INVALID The certificate does not cover the exact name visited www or a subdomain missing from the certificate; DNS pointing to a different server Fix SSL warnings

The MDN reference on HTTP status codes describes every code in more detail.

Server errors (5xx) in more detail

500 Internal Server Error

A 500 is a catch all for "something broke". On shared hosting it is almost always the website, not the server.

  1. Open the error log. In cPanel, the Errors tool in the Metrics section shows recent web server errors, and PHP errors often appear in an error_log file in the site folder.
  2. If you edited .htaccess, rename it to .htaccess-old and reload. If the site returns, the file had a bad rule.
  3. On WordPress, rename the wp-content/plugins folder to disable all plugins at once, then reactivate them one by one.
  4. If you recently changed PHP version, switch back and test. See changing the PHP version in cPanel.

502 Bad Gateway and 504 Gateway Timeout

Both involve a gateway or proxy, such as a CDN, a reverse proxy like Nginx in front of Apache, or a PHP handler. A 502 means the gateway got a bad answer; a 504 means it got no answer in time.

  • If you use a CDN, check that its origin setting points to your current hosting IP. An old IP after a migration is a common cause.
  • Look for slow pages: heavy reports, imports, or a plugin making slow external API calls. These can hit time limits.
  • On a VPS, check that the web server and PHP services are running and that the server has free memory.
  • If the error appears across every site on the account and you have changed nothing, open a ticket with your host.

503 Service Unavailable

A 503 means "try again later". Common causes on hosting:

  • The account reached its CPU, memory or process limits, often during a traffic spike or a bot crawl.
  • WordPress left a .maintenance file after an interrupted update. Delete it from the site's root folder.
  • The server is under maintenance.

Repeated 503s during busy periods suggest the site has outgrown its plan. The guide on improving website speed covers caching and when to consider a VPS.

Client errors (4xx)

403 Forbidden

The server refuses access. Check that folders are 755 and files 644, that the folder has an index.php or index.html, and that no .htaccess rule or security plugin is blocking your IP. If you are blocked only on office Wi-Fi, the cPanel IP Blocker or a security plugin may have flagged your office IP after failed logins.

404 Not Found

The server works but the page is not where the link says.

  • Check the URL for typos and wrong capitalisation; Linux servers treat About.html and about.html as different files.
  • If files were uploaded, confirm they are inside public_html (or the domain's document root), not a subfolder. See uploading files with File Manager or FTP.
  • On WordPress, go to Settings → Permalinks and click Save to rebuild the rewrite rules.
  • If a page moved permanently, add a 301 redirect from the old URL so visitors and search engines follow it.

Redirect loops and database errors

Too many redirects usually comes from two systems both trying to force HTTPS or www. Typical example: a CDN connects to your server over HTTP, the server redirects to HTTPS, the CDN requests HTTP again, and so on. Clear cookies, then check the CDN's SSL mode, your .htaccess rules and the site URL settings together. The redirect loop help article walks through each.

Error establishing a database connection means the credentials in the config file do not match the database, or the database server is not responding. On cPanel, names carry the account prefix (cpuser_dbname), which is easy to get wrong after a migration. Recheck all four values and confirm the user is assigned to the database. The database connection help article has the steps.

DNS errors

DNS_PROBE_FINISHED_NXDOMAIN means the browser asked DNS for your domain and got "no such domain". Check, in this order:

  1. Domain expiry at your registrar. An expired domain stops resolving.
  2. Nameservers at the registrar: spelled exactly as your host gave them, with no leftover old entries.
  3. Recent changes. After a nameserver change, some networks see the new values sooner than others. The DNS propagation article explains how long to wait.

You can confirm what public DNS returns:

nslookup yourbusiness.in 8.8.8.8
nslookup -type=NS yourbusiness.in 8.8.8.8

If public DNS answers correctly but your computer does not, flush the local cache (ipconfig /flushdns on Windows) and try again. For background, see what DNS is.

SSL errors

ERR_SSL_PROTOCOL_ERROR means the TLS handshake failed. Common causes: no certificate installed for that domain yet (often right after connecting a new domain), the domain still pointing at an old server, or a wrong date and time on the visitor's device.

NET::ERR_CERT_COMMON_NAME_INVALID means the certificate is valid but for a different name, for example it covers yourbusiness.in but not www.yourbusiness.in. Reissue the certificate to include every name visitors use, and redirect the others.

On cPanel, SSL/TLS Status shows which domains have a valid certificate. ODHOST shared plans include a free SSL certificate; once the domain points to the server, check its status there. The guide on how SSL certificates work explains the background.

When to contact support

Open a ticket when:

  • Every site on the account shows the same error and you changed nothing.
  • The error log mentions server level problems (disk full, service down) rather than your code.
  • You see resource limit messages you cannot explain.
  • You need a backup restored. The restore backup help article explains what you can do yourself first.

Include the URL, the exact error text, the time in IST, recent changes and any log lines. ODHOST support is available by ticket from the client area and by phone; the help article on opening a support ticket shows how.

Frequently asked questions

Is a 500 error my fault or my host's?

Usually it comes from the website itself: a broken plugin, a bad .htaccess rule or a PHP error. Check the error log first. If the log is empty and every site on the account shows the error, contact your host.

Why does my website work on mobile data but not on Wi-Fi?

The two networks use different DNS resolvers, and one is still caching an old record. Wait for the TTL to pass, or flush the DNS cache on the device. It can also be a firewall block on one network.

Where do I find my website's error log?

In cPanel, open the Errors tool in the Metrics section for recent web server errors, and look for an error_log file in your site's folder for PHP errors. In Plesk, use the Logs page for the domain.

What should I send to support when reporting an error?

Send the exact URL, the full error text or a screenshot, the time it happened in IST, what you changed recently, and any matching lines from the error log. That lets support reproduce the problem quickly.

Sources and further reading

Contact us