Errors
Fix "Technical Difficulties" When Email Recovery Fails
When WordPress shows "This site is experiencing technical difficulties," it's supposed to send a recovery link to the admin email so you can disable the broken plugin or theme without touching any files. But that email frequently never arrives — and when it doesn't, most guides leave you stranded. This article covers exactly what to do next: manual recovery methods that work even with no email access, a systematic fix sequence, and how to make sure this can't trap you again.
What You're Actually Seeing
The full message on the front end reads: "This site is experiencing technical difficulties." Your WordPress admin dashboard is also unreachable — you'll either see the same message or a generic server error. Since WordPress 5.2, this screen replaced the old White Screen of Death for PHP fatal errors. It means WordPress detected a critical PHP error severe enough to break the entire site and triggered its built-in fatal error protection.
At the same time, WordPress is supposed to email your admin address with a subject line like "Your Site is Experiencing a Technical Issue" and a temporary URL with a ?recover= parameter that lets you disable plugins from the front end. When that works, recovery takes about 60 seconds. When it doesn't, you need the manual path.
Why the Recovery Email Doesn't Arrive
This is the most common reason people end up searching for help, so it's worth understanding the failure chain:
- WordPress uses PHP mail by default. Most shared hosts either block it outright or deliver it unreliably. If you haven't configured an SMTP plugin, there's a real chance outbound email from your site never works reliably anyway.
- The admin email is wrong. Go to Settings → General in a working WordPress install and you'll often find an old address, a role account nobody checks, or a typo. Since you can't get into the admin right now, you won't know until after you fix it.
- Spam filtering. The email lands in junk, or a corporate mail gateway quarantines it.
- The PHP error happened before WordPress could send anything. A very early bootstrap error (a must-use plugin, an object-cache drop-in, or a corrupted
wp-config.php) fires before the email code even loads.
Step 1 — Find the Actual Error First
Before you start disabling things blindly, spend two minutes confirming what broke. This saves you from re-enabling the wrong things later.
Enable WP_DEBUG via wp-config.php. Connect to your site via FTP/SFTP or your host's File Manager. Open wp-config.php in the root of your WordPress install and add these two lines directly above the line that says /* That's all, stop editing! */:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Save the file and reload your site. WordPress will write all PHP errors to /wp-content/debug.log. Download that file and look for lines marked Fatal error — they'll include the file path of whatever broke. That path tells you whether it's a plugin, a theme, or a core file.
If debug.log stays empty or doesn't appear, the error is happening before WordPress initialises the logger. In that case, temporarily set WP_DEBUG_DISPLAY to true and reload — the raw PHP error will print on screen. Write it down, then set it back to false.
Step 2 — Disable Plugins via FTP (No Dashboard Needed)
This is the safest and most reliable manual fix. WordPress won't load a plugin if the folder doesn't exist under wp-content/plugins/, but you don't need to delete anything — renaming is enough, and it's completely reversible.
- Connect via FTP/SFTP and navigate to
/wp-content/plugins/. - If the debug log named a specific plugin, rename just that folder — for example, rename
my-broken-plugintomy-broken-plugin-DISABLED. - Reload your site. If it recovers, you found the culprit. Log in to the dashboard and investigate: check if there's an update available for that plugin, or look for a compatibility note in its changelog.
- If the site is still broken and you couldn't identify the plugin, rename the entire
pluginsfolder toplugins-DISABLEDand create a fresh empty folder calledplugins. This disables everything at once. - Once the site loads, log in, then rename the folder back to
plugins(deleting the empty one first). WordPress will show all plugins as inactive — re-enable them one at a time to isolate which one triggers the error.
For a detailed walkthrough of systematic plugin isolation, see How to Isolate a Plugin Conflict Without Killing Your Site.
Step 3 — Rule Out the Active Theme
If disabling all plugins didn't fix the error, the active theme is the next suspect. The easiest fix here is also done via FTP:
- Navigate to
/wp-content/themes/. - Rename your active theme's folder — for example,
my-custom-theme→my-custom-theme-DISABLED. - WordPress will fall back to the most recently installed default theme (Twenty Twenty-Four, for example) if it's present. If there's no fallback theme, WordPress will display an error rather than loading, so confirm you have at least one other theme folder present.
- If the site recovers, the theme was the cause. You'll need to compare your theme files against a clean copy or investigate any recent edits.
Step 4 — Check for a Corrupted wp-config.php or Core Files
If both plugins and theme are ruled out, the problem is either in wp-config.php or in WordPress core files. This is less common but happens after a failed update, a partial migration, or in some malware scenarios.
For wp-config.php: Open the file and look for stray characters at the very top (before <?php) or at the bottom. A single space or newline outside the PHP tags causes a "headers already sent" fatal error. Also verify that your database credentials are still correct — an accidental edit to DB_NAME, DB_USER, or DB_PASSWORD will produce this screen. If you suspect database issues, the database connection error guide covers that in depth.
For core files: Download a fresh copy of WordPress from wordpress.org matching your exact version. Replace the /wp-admin/ and /wp-includes/ folders entirely via FTP. Do not overwrite wp-config.php, the /wp-content/ folder, or the root .htaccess. This re-installs core without touching your content or settings.
Step 5 — Recover the Admin Email Setting Directly in the Database
Once your site is back online, fix the root cause of the missing email so this doesn't happen again. If you couldn't log in earlier because the admin email was wrong, update it directly:
- Open phpMyAdmin from your host's control panel and select your WordPress database.
- Open the
wp_optionstable (prefix may differ). - Find the row where
option_nameisadmin_email. - Edit
option_valueto a valid address you control. - Save.
Then, once you're logged back in to WordPress, install a transactional SMTP plugin (WP Mail SMTP is a well-established option) and configure it with your mail provider's credentials. Send a test email from the plugin's settings to confirm delivery. This single change makes the WordPress recovery email reliable for every future incident.
After Recovery: What to Clean Up
- Remove or reverse the
WP_DEBUGlines fromwp-config.php(or at minimum keepWP_DEBUG_DISPLAYset tofalseon a live site). - Delete
/wp-content/debug.log— it can contain path information useful to an attacker. - Update or replace the plugin or theme that caused the error. If it hasn't been updated in over a year and the author hasn't responded to support threads about the issue, consider finding an actively maintained alternative.
- Confirm your backup schedule is running. A recent backup makes every one of these steps optional — you can restore and investigate from a position of safety rather than urgency. The Mend Care Plan handles automated daily backups plus monitoring so you know about problems before visitors do.
When to Call a Professional
Most "technical difficulties" errors resolve with the steps above. Call in a professional when:
- The debug log shows errors in core files you didn't touch — this can indicate malware or a compromised server.
- You've disabled all plugins and themes and the error persists, pointing to a server-level PHP or database issue.
- Your site is a live production environment and every minute of downtime costs real money or reputation.
- You don't have FTP/SFTP access or your host's file manager and can't get credentials quickly.
If you're in any of those situations, Mend's Emergency Rescue gets a senior engineer working on your specific site, with a backup taken before anything is touched, and a plain-English report of exactly what was wrong and what changed. Most fixes land the same day. There's also a free Diagnosis if you'd rather have someone triage it first and give you a flat price before any work starts — no card required.
The "technical difficulties" screen exists to protect your site, but it assumes the recovery email works — and it often doesn't. Knowing how to reach around it via FTP and the database puts you back in control in under 30 minutes, regardless of what your inbox says.
Frequently asked questions
Can I trigger a new recovery email without accessing the dashboard?
Not directly. The recovery email is generated by WordPress when it first catches the fatal error, and it won't re-send automatically. Your best path is the FTP method above to disable the broken component, then log in normally.
Will disabling all plugins lose my data or settings?
No. Disabling a plugin via FTP (by renaming its folder) leaves all database records intact. Your posts, pages, users, and plugin settings are all stored in the database and are untouched. When you re-enable the plugin, everything comes back.
What if I don't have FTP access to my site?
Most hosts provide a web-based File Manager in cPanel or a similar control panel — it works identically to FTP for renaming folders. If your host offers neither and you can't reach your site's files at all, that's a hosting account access problem to raise with support before anything else.
How do I stop this happening after a future plugin update?
Two habits help most: always take a backup before updating (or use a service that does it automatically), and update plugins one at a time rather than in bulk so a problem is immediately traceable to a single update. The Mend Care Plan handles both automatically.