Skip to content

A website shows an error page or 'This site is temporarily unavailable.'

A visitor, or you, opens the site and gets one of:

  • A page headed “This site is temporarily unavailable.” with a sentence under it.
  • A plain HTTP 503 page.
  • 502 Bad Gateway or 504 Gateway Time-out from nginx.
  • 403 or 404 for every page, including pages that exist.
  • WordPress’s “critical error” page. That one is covered in WordPress shows a critical error.

Check what the server answers first:

Terminal window
curl -sI https://example.com/

The page “This site is temporarily unavailable.” is what a suspended site serves, with a status of 503. The sentence under it is the reason: “This site has expired.”, “This site exceeded its disk allowance.”, or the text typed when it was suspended manually. A site in Trash is offline the same way.

Check: open Hostings and find the site. The state pill reads suspended, or the site is listed in Trash.

Fix: click Resume in the site’s top bar. For a disk-quota suspension, free disk space or raise the limit first, otherwise the next check suspends it again. See Suspend, resume or delete a website and PHP versions and limits.

With maintenance mode on, every request to the HTTPS site returns 503 and a “we’ll be back” page, while certificate renewals keep working.

Check: a MAINTENANCE badge shows at the top of the site’s page and on its row in the list.

Fix: open the site, then Settings & limits, untick Maintenance mode on the Vhost options card and click Save vhost options. See Manage domains and aliases.

nginx answers 502 when it cannot reach PHP-FPM, and 504 when PHP does not answer in time.

Check: open Service health and look at the php<version>-fpm row for the site’s PHP version, see Check the health of a node’s services. From the node:

Terminal window
sudo hctl service list
sudo journalctl -u php8.3-fpm -n 50 --no-pager

Fix: click Restart on the row, or run sudo hctl service restart php8.3-fpm with the site’s version. If the site was switched to a version that is not installed, the PHP-version change failed with fpm_ensure for PHP 8.4 failed; install the version from Service health, then switch again.

504 or very slow pages, while the FPM service is running, mean the site’s PHP pool is full. Raise PHP-FPM max_children within what the node’s memory allows, or find the slow request. The node also raises it by itself after the pool ran out of workers three times, unless you turned that off. See PHP versions and limits.

A 403 or 404 for every page, right after an import, a restore or an unzip as root, usually means the document tree is not readable by nginx. Hyperion checks permissions every five minutes and repairs them. To repair at once:

Terminal window
sudo hctl hosting repair-perms example.com

See hctl hosting repair-perms. On a WordPress site, the Site health row says “the document root is missing or empty” for a 404 and names an access rule or an unreadable document root for 401 and 403, see Repair a broken WordPress site.

Apply the fix for the cause that matched. If a quick repair needs a fresh state, restore the latest good backup from the site’s Backups tab.

Terminal window
curl -sI https://example.com/

The first line reads HTTP/2 200 (or a redirect your site makes). The site’s state pill reads active.