Sorted by symptom, with the repair window

Common WordPress Errors, Their Causes and Repair Times

Diagnose a WordPress error from the symptom in front of you rather than from a name you would have to know already. Filter the index below by what you can see - a blank page, a 500, a login that will not accept anything, a checkout that fails - and it returns the pages that match, each with the causes that produce it, how to tell them apart, and a realistic repair window.

Most WordPress errors have several possible causes wearing one message. Work from the symptom to the cause before applying any fix: the same blank page can be a memory limit, a plugin conflict or a theme fault, and each has a different repair and a different repair time.

failure index sorted by symptom and repair window
The path this interrupts: one URL or all of them then did anything change then does wp-admin still load then is there a log line.
  • 500 internal server error Diagnose an HTTP 500 error on WordPress by reading the log rather than guessing at it. The generic…
  • SSL cipher mismatch Diagnose ERR_SSL_VERSION_OR_CIPHER_MISMATCH on a WordPress site, where the browser refuses the connection before a byte of the page…
  • error establishing a database connection Diagnose which of three faults is behind Error establishing a database connection in WordPress: the wrong credentials in…
  • white screen of death Diagnose the WordPress white screen of death, which is a fatal PHP error being hidden rather than a…

4 pages

Start from the symptom, not the name

Nobody arrives at a troubleshooting index knowing they have a nonce failure. They arrive because the page is blank, the checkout will not complete, or something says 500 and nothing else.

That is why this section is filtered by symptom. Type what you can see and the index returns the pages that produce it – frequently more than one, which is itself the useful finding. The same blank screen is a memory limit, a plugin conflict or a theme fault, and knowing which of the three decides everything that follows.

One message, several causes

WordPress error messages are generated where the request failed, not where the fault is. That is why so many of them are ambiguous.

HTTP 500 means the server declined to explain. Corrupt .htaccess, a fatal error in a plugin, an exhausted memory limit and a file permission all produce it, and the error log names which.

Error establishing a database connection covers wrong credentials, a database server that is down, a connection limit, and corrupted tables – four fixes with nothing in common.

A blank page is a fatal PHP error with display switched off. The blank is the suppression, not the fault.

Each page in this section separates the causes and names the test that distinguishes them, because the order you work them in is most of the cost.

What these pages assume

That the site is live and the clock is running. Every procedure works without wp-admin where wp-admin is the thing that has disappeared, and every one of them puts the backup step before the destructive step.

Where a fault has a fast temporary fix and a slower correct one, both are stated in that order – service first, root cause second. That is the right order for a business, and it is only safe when somebody comes back for the second half.

When an error is a compromise

Most errors are ordinary faults. A few are the visible edge of something else.

Treat it as a compromise rather than a bug when the debug log names a file you do not recognise, when an administrator account exists that nobody created, when content appears that nobody wrote, or when a fix holds for a fortnight and the same fault returns. In all four cases the repair on the error page will work and will not last, because the entry route is still open.

Related pages

Questions people ask before calling

How do I find out what is wrong with my WordPress site?

Start from the symptom rather than the error name. Filter the index above by what you can see, and each page then separates the possible causes and tells you which test distinguishes them. Guessing at a fix before that step is what turns twenty minutes into an afternoon.

Why does one error message have several causes?

Because the message is generated at the point the request failed, not at the point something went wrong. HTTP 500 means the server gave up and declined to explain; Error establishing a database connection covers three unrelated faults. The message narrows it to a layer, not to a cause.

Which errors mean the site was hacked?

None of them on their own. A white screen, a redirect or a sudden traffic drop are all produced by ordinary faults far more often than by a compromise. What points at a compromise is a file you do not recognise, an administrator nobody created, or content you did not write.

Should I restore a backup first?

Only when the cause is a change you just made. Restoring is the correct fix for exactly one class of problem and it destroys the evidence for every other, including everything written since the copy was taken. Establish the layer first.

How current are these pages?

Every document here is reconfigured on a six-month cycle. Error behaviour changes with WordPress and PHP versions, and a troubleshooting page that has not been revised sends people at fixes that stopped applying two versions ago.