Paste a WordPress fatal error, a white screen message, or a few lines of your debug.log below. You will get a plain-English explanation of what broke, which plugin or theme most likely caused it, and the fixes to try in order, safest first.
- Almost every WordPress fatal error names the file that failed, and that file path usually names the plugin or theme responsible.
- The pattern to look for is
wp-content/plugins/<slug>/orwp-content/themes/<slug>/in the error text. - “Call to undefined function” almost always means a plugin that was providing that function is missing, deactivated, or loading too late.
- If you cannot reach the admin, renaming the plugin folder over SFTP deactivates it and gets you back in.
- Turn on
WP_DEBUG_LOGwith the log written outside the web root, never with errors displayed to visitors.
Reading a WordPress fatal error yourself
WordPress errors look intimidating and are mostly formulaic. Once you know the shape, you can usually identify the culprit in about ten seconds.
PHP Fatal error: Uncaught Error: Call to undefined function get_field()
in /home/site/public_html/wp-content/themes/mytheme/single.php:42
Three pieces of information are in there:
- What went wrong: something called
get_field()and that function did not exist. - Where it happened: line 42 of
single.phpin the thememytheme. - What it implies:
get_field()comes from Advanced Custom Fields. The theme is calling an ACF function while ACF is not active.
Notice that the file in the error is the victim, not always the cause. The theme broke, but the real problem is a missing plugin. This is the single most common misreading, and it sends people rewriting theme files when they should be reactivating a plugin.
The errors you will actually hit
Call to undefined function
A plugin that provided that function is deactivated, deleted, or loading after the code that needs it. Reactivate it, or wrap the call in function_exists() so a missing plugin degrades instead of crashing the page.
Allowed memory size exhausted
PHP ran out of memory. Raising WP_MEMORY_LIMIT in wp-config.php is the quick fix, and our wp-config generator sets a sensible value. Worth knowing that a sudden memory error usually means something changed, so raising the limit forever without asking what changed just postpones it.
Cannot redeclare function
Two things defined a function with the same name, usually because a snippet was pasted into functions.php twice, or a plugin and a theme both ship the same helper. The error names both files.
A completely blank page
PHP hit a fatal error with error display switched off, which is correct for production but unhelpful right now. Turn on debug logging to see the actual message, then work from that. Full recovery steps are in our guide to the WordPress white screen of death.
Error establishing a database connection
Not a PHP problem at all. Credentials, a stopped database service, or a host issue. See fixing the database connection error.
Turning on the error log safely
If you only have a blank page, you need the log. Add this to wp-config.php above the “stop editing” line:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', false );
// Write the log ABOVE the web root so it can never be fetched over HTTP.
define( 'WP_DEBUG_LOG', dirname( ABSPATH ) . '/wp-errors.log' );
The important part is WP_DEBUG_DISPLAY being false and the log path sitting outside the web root. The default location, wp-content/debug.log, is publicly readable on a lot of hosts, and debug logs routinely contain file paths, queries and occasionally credentials. Reload the broken page, read the log, then turn debugging off again.
When you cannot get into wp-admin
A fatal error often takes the dashboard down too, which makes “deactivate the plugin” unhelpful advice. You do not need the admin.
- Connect over SFTP or your host’s file manager.
- Go to
wp-content/pluginsand rename the suspect folder, for exampleacftoacf-off. WordPress cannot find it, so it deactivates it and the site comes back. - If you do not know which plugin, rename the whole
pluginsfolder toplugins-off. That disables everything at once. Create an emptypluginsfolder, log in, then move plugins back a few at a time. - If the error names a theme, rename the theme folder. WordPress falls back to a default theme.
Renaming is reversible, which is why it beats deleting. Put the name back and the plugin returns with its settings intact.
One caution on pasting logs anywhere, including here: error output can contain absolute server paths, database names and occasionally tokens. Trim it to the lines around the error before sharing it.
Frequently Asked Questions
How much of the log should I paste?
The error line itself plus the stack trace under it is plenty, usually ten to twenty lines. More context helps, but a log full of repeated deprecation notices mostly adds noise. If the file is enormous, the last error before the site broke is the one that matters.
Is my error text stored anywhere?
What you paste is sent to our tools service and to the AI model that produces the diagnosis, because that is how the analysis happens. We do not store it or log it after the response is returned. Even so, treat any log as potentially sensitive and strip out database names, absolute paths you would rather not share, and anything resembling a key before pasting.
The diagnosis names a plugin. Should I just delete it?
Deactivate it, do not delete it. Deactivating is instantly reversible and tells you within seconds whether that plugin was the cause. Deleting frequently removes the plugin’s data along with it, and if you were wrong about the culprit you have now caused a second problem. Confirm the fix, then decide about removal.
Why does it take about half a minute?
The analysis runs through a language model, which takes twenty to forty seconds for a response of this length. We would rather be honest about the wait than show a spinner that implies it is nearly done. If the site is down and you need something immediately, the manual reading guide above will usually get you to the same answer faster.
If the culprit turns out to be a plugin nobody maintains any more, our plugin replacement finder will suggest what to move to. To see everything running on the site, try the plugin and theme detector.
Browse all our free WordPress tools, all free and none of them asking for an email address.