Troubleshooting
Start from what you are actually seeing. Every entry below is a symptom.
Find your symptom
| What you see | Where to go |
|---|---|
domain is not registered to this account and is not a subdomain of a zone you own | A hostname is refused |
domain already attached to another hosting site | A hostname is refused |
site name already in use | A hostname is refused |
| The site does not load, or the browser warns about the certificate | Nothing answers |
www shows nothing, or the wrong site | www does not work |
redirect source domain is already used elsewhere | www does not work |
| A setting was saved but nothing changed | A change had no effect |
| An uploaded file still shows the old content | A change had no effect |
Rewrites, redirects or headers from .htaccess are ignored | .htaccess is ignored |
| An upload fails, or fails silently | A large upload fails |
| The site becomes unreachable under load | The site runs out of memory |
| SFTP times out, or a transfer stops part-way | SFTP problems |
a command is already running for this site | A command will not run |
invalid working directory | A command will not run |
mysql: not found | A command will not run |
Invalid schedule, or the job never runs | A cron job never runs |
Maximum 5 cron jobs per site. | A cron job never runs |
Max 1 backup per hour, 3 per day. | A backup will not start |
| The storage figure does not match reality | The storage figure looks wrong |
A hostname is refused
domain is not registered to this account and is not a subdomain of a zone you own: shop.example.netThe hostname is not one we can attach. A site may only serve a domain that is on your account, or a subdomain of a zone your account owns. Add or transfer the domain first.
If the name is a subdomain of one of your zones, you are using the wrong field. Subdomains go under Additional hostnames, not the primary domain list, and the message says so:
... shop.example.com is a subdomain — add it as an additional hostname insteaddomain already attached to another hosting siteThe domain is serving a different site in your account. Remove it there first.
site name already in useSite names are unique across all customers, not just your account. Pick another; the name is internal and visitors never see it.
Nothing answers, or the certificate is wrong
Check what the name resolves to before anything else:
dig +short A example.com
dig +short AAAA example.comBoth must come back as 91.98.6.3 and 2a01:4f8:1c1f:7bfa::1. Nothing points your domain here automatically, so on a new site the usual answer is that the records were never set. See Domains, DNS and HTTPS.
If only the A record is right, visitors on IPv6 get nothing while you, on IPv4, see a working site. Set both records.
A certificate warning right after the records are correct is expected. The certificate is issued by checking the hostname over HTTP, so it cannot exist before the name resolves here. Allow up to an hour after propagation.
If the name resolves correctly and you get a placeholder page reading Your site is ready, everything works and the document root is empty. Upload your files.
www does not work
www.example.com is a separate hostname. Adding example.com does nothing for it, in either DNS or the site.
- Give
www.example.comits ownAandAAAArecords, same two addresses. - Then either add it under Additional hostnames to serve the same files, or add a redirect from it to the bare domain.
redirect source domain is already used elsewhere: www.example.com is also a primary domain on this siteYou have done both. A hostname either serves the site or redirects, never both. Remove it from the hostname list, or drop the redirect.
A change had no effect
PHP settings. After the first time you save the PHP Settings card, later changes to it are stored but do not reach PHP until the site restarts. Use Restart site under Actions, then confirm from the console:
php -i | grep memory_limitAn uploaded file. Compiled PHP is cached and rechecked once a minute, so a change can take up to 60 seconds to appear. If it has been longer, you uploaded into the wrong directory: only public_html is served, and if the site has a document root subdirectory set, only that subdirectory of it.
Runtime or web server. Those apply immediately, over a few seconds of replacement. If the PHP version did not change, check you pressed Save on the Settings card rather than only picking from the dropdown.
.htaccess is ignored
nginx does not read .htaccess. Nothing errors, nothing is logged, and the file is simply not consulted. This is the most common surprise when moving a site from another host.
Set the web server to Apache on the Settings tab if the application really needs it. If all you need is pretty URLs, nginx already sends unknown paths to index.php and no configuration is required.
Remember that on Apache the dotfile protection is gone too: block .env, .git/ and similar yourself in the .htaccess you are now using.
A large upload fails
Three different limits, three different symptoms.
- The request is rejected before PHP sees it, with a
413. Raise Max upload size on the Settings card; the limit in front of the site follows it automatically. The ceiling is 512 MiB. - The upload disappears with no error.
Max POST sizeis smaller thanMax upload size. PHP drops the file and reports nothing. Set POST size at least as high as upload size. - The upload runs and then times out. On nginx a request is cut at 300 seconds regardless of
Max execution time, so importing a large archive through the browser will not work. Upload it over SFTP and unpack it from the console instead.
On a Static site the limit is fixed at 8 MiB and cannot be raised.
The site runs out of memory
Symptoms: the site is fine at low traffic and becomes unreachable under load, or requests that were working start failing together.
Memory limit is per request, but the whole site shares 512 MiB across up to 15 parallel PHP requests. 512M therefore does not make one request bigger, it removes PHP's own brake and lets a few requests exhaust the site. Set it back to 256M or lower and find the request that actually needs more.
SFTP problems
Check the port first. It is 2222, not 22. Port 22 on this host answers with a different service, so leaving the default gives you a host-key warning or a rejected login, never a message about the port. If your password is refused, check the port before you check the password.
The password is rejected. The password is shown once, when you set it. If you did not save it, use Reset password for a new one. There is no public key authentication, so a client configured to offer a key and nothing else will never get in.
A transfer stops part-way. The SFTP endpoint restarts briefly whenever credentials change anywhere, dropping open connections. Use a client that resumes, and verify the transfer completed rather than assuming.
ssh gives you nothing. The account has no shell by design. Use the console for commands.
A command will not run
a command is already running for this siteOne command per site at a time. Wait for it, or press Stop.
invalid working directory: working_dir must be /app/public_html or a subdirectoryThe working directory has to be /app/public_html or something below it. That path is the same place as public_html over SFTP.
mysql: not foundThe MariaDB command line clients are not installed. Anything shelling out to them fails, including wp db export and wp db import. Use a backup for dumps and your framework's own tooling for queries.
A command is stopped after 10 minutes. Work that takes longer belongs in a cron job, which can run for up to 3600 seconds.
A cron job never runs
Invalid scheduleFive fields, minute hour day-of-month month day-of-week. Six-field expressions with seconds are rejected, and so are @daily, @hourly and the rest.
It runs, but at the wrong time. Schedules are UTC. 0 3 * * * fires at 03:00 UTC, which is 04:00 or 05:00 in Germany depending on the season. The site's PHP timezone does not change this.
It ran once and never again. A failed run is not retried, and with the default overlap policy a run starting while the previous one is still going is skipped rather than queued. Check Runs, and give a long-running job a higher timeout instead of letting it collide with itself.
The output is gone. Run history is 3 successful and 3 failed runs, kept for 24 hours. Write anything you need to keep to a file.
Maximum 5 cron jobs per site.
Maximum 30 cron jobs per account reached.Combine steps into one command, or remove a job you no longer need.
A backup will not start
Max 1 backup per hour, 3 per day.Both limits apply per site. Wait out the window.
maximum backups reachedFive live backups already exist. The oldest expires 72 hours after it was made; delete or download one if you cannot wait.
A backup finished but part of it is missing. Files and databases are made independently and a backup is marked complete even when one part failed. Check both sizes on the row and take another one.
A restore did not bring the files back. Restore covers the database only. Download the file archive and unpack it over SFTP.
The storage figure looks wrong
Usage is measured once an hour, not continuously. After deleting a large amount of data the number stays where it was until the next measurement. Do not delete more on the assumption that the first deletion failed.
Going over the package size does not block anything. Writes keep working and the excess is billed; see Web Hosting.
What's next
- Domains, DNS and HTTPS if the site is simply not reachable
- Runtime and PHP settings for what each limit does