White Screen of Death Recovery

Recover from fatal WordPress errors after plugin activation.

  • Advanced
  • 15 min read
  • Applies to 1.2.1
  • Updated December 2025

Written for 1.2.1. It is being checked against 2.0, so a screen or a setting may sit somewhere else. Tell support if something does not match.

Overview

The "White Screen of Death" (WSOD) is a blank white page with no error messages, usually caused by PHP fatal errors. This guide helps recover when Attributes User Access or another plugin causes WSOD.


Understanding WSOD

What Causes It

Common causes:

✗ PHP memory limit exhausted
✗ PHP fatal error in plugin
✗ Plugin conflict
✗ Theme incompatibility
✗ Corrupt plugin files
✗ PHP version incompatibility
✗ .htaccess issues

Why White Screen?

No error displayed because:

- PHP error reporting disabled
- Fatal error occurs before WordPress loads error handler
- Display errors set to off (production default)

Solution: Enable error display temporarily


Immediate Recovery Steps

Method 1: Deactivate Plugin via FTP

Fastest method - No admin access needed:

Step 1: Connect via FTP

Use FileZilla, WinSCP, or cPanel File Manager

Step 2: Navigate to plugins folder

/wp-content/plugins/

Step 3: Rename plugin folder

From: attributes-user-access-pro
To:   attributes-user-access-pro-disabled

WordPress will automatically deactivate the plugin

Step 4: Test site

Visit your site
Should load normally now

Step 5: Investigate and fix

Check error logs
Fix the issue
Rename folder back
Reactivate plugin

Method 2: Deactivate via Database

Via phpMyAdmin or MySQL command line:

Step 1: Access database

cPanel → phpMyAdmin
Or: SSH + mysql -u username -p

Step 2: Run query

-- Find active plugins
SELECT option_value
FROM wp_options
WHERE option_name = 'active_plugins';

-- Result looks like:
-- a:2:{i:0;s:43:"attributes-user-access-pro/main.php";i:1;s:19:"other-plugin/main.php";}

Step 3: Deactivate all plugins

UPDATE wp_options
SET option_value = 'a:0:{}'
WHERE option_name = 'active_plugins';

Step 4: Test site

Visit your site
Should work now with all plugins deactivated

Step 5: Reactivate one by one

Go to wp-admin/plugins.php
Activate plugins one at a time
Find which causes WSOD

Method 3: Enable Error Display

See the actual error message:

Edit wp-config.php via FTP:

// Add these lines at the TOP (before anything else)
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Or WordPress debug constants
define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', true);
@ini_set('display_errors', 1);

Refresh site - You'll see error message now

Common error messages:

Memory exhausted:

Fatal error: Allowed memory size of 67108864 bytes exhausted
(tried to allocate 2097152 bytes)

Solution: Increase memory limit

Undefined function:

Fatal error: Call to undefined function attrua_pro_init()

Solution: Plugin file missing or corrupt. Reinstall.

Parse error:

Parse error: syntax error, unexpected 'string' (T_STRING)
in /wp-content/plugins/attributes-user-access-pro/file.php on line 42

Solution: File corrupted during upload. Re-upload.

Specific Recovery Scenarios

Scenario 1: Memory Limit Exceeded

Error in debug.log:

PHP Fatal error: Allowed memory size exhausted

Solution: Increase memory limit

Option 1: wp-config.php

// Add before "That's all, stop editing!"
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

Option 2: .htaccess

php_value memory_limit 256M

Option 3: php.ini

memory_limit = 256M

Scenario 2: PHP Version Incompatibility

Error:

Parse error: syntax error, unexpected '?'

This indicates:

Plugin requires PHP 7.4+
Server running older version (5.6, 7.0, etc.)

Solution:

1. Deactivate plugin via FTP (Method 1)
2. Contact hosting to upgrade PHP
3. Recommended: PHP 8.0+
4. Minimum: PHP 7.4
5. Reactivate after PHP upgrade

Scenario 3: Plugin Conflict

Multiple plugins causing conflict:

Identify culprit:

1. Deactivate ALL plugins (Method 2: Database)
2. Site works? Conflict confirmed
3. Reactivate plugins one by one
4. When WSOD returns, you found the culprit
5. Keep that plugin deactivated
6. Contact both plugin authors about conflict

Scenario 4: Corrupt Files

Error:

Fatal error: Cannot redeclare function
OR
Include failed: File not found

Solution:

1. Deactivate via FTP (rename folder)
2. Delete plugin folder entirely
3. Download fresh copy from your account
4. Upload new copy via FTP
5. Activate

Scenario 5: Theme Conflict

Site works in wp-admin but white screen on frontend:

Switch to default theme:

Via database:

-- Switch to Twenty Twenty-Four theme
UPDATE wp_options
SET option_value = 'twentytwentyfour'
WHERE option_name = 'template';

UPDATE wp_options
SET option_value = 'twentytwentyfour'
WHERE option_name = 'stylesheet';

Test frontend. If works:

Theme compatibility issue
Contact theme developer
Use different theme
Or keep default theme

Preventing WSOD

Before Activation

  • Backup site (database + files)
  • Check PHP version meets requirements
  • Check memory limit adequate (128MB+)
  • Test on staging site first
  • Have FTP credentials handy
  • Enable debug mode before activating

During Troubleshooting

Best practices:

✓ Always test on staging first
✓ Activate new plugins one at a time
✓ Test after each activation
✓ Keep debug.log enabled temporarily
✓ Monitor error logs
✓ Have recovery plan ready

Advanced Recovery

WP-CLI Method

If you have SSH access:

# Deactivate all plugins
wp plugin deactivate --all

# Or specific plugin
wp plugin deactivate attributes-user-access-pro

# List all plugins and status
wp plugin list

# Reactivate after fixing
wp plugin activate attributes-user-access-pro

Restore from Backup

If nothing else works:

1. Access hosting control panel
2. Restore from most recent backup
3. Site works now, but you lost recent changes
4. Identify what caused WSOD
5. Fix issue before trying again

Emergency Mode

Create emergency access file:

File: wp-content/mu-plugins/emergency.php

<?php
/**
 * Emergency: Deactivate all plugins
 * Delete this file when done!
 */

// Deactivate all plugins
update_option('active_plugins', array());

// Show message
add_action('admin_notices', function() {
    echo '<div className="notice notice-warning">';
    echo '<p><strong>EMERGENCY MODE:</strong> All plugins deactivated.</p>';
    echo '<p>Delete /wp-content/mu-plugins/emergency.php to restore normal operation.</p>';
    echo '</div>';
});

Upload via FTP to /wp-content/mu-plugins/ This auto-deactivates all plugins Delete file after recovery


Getting Help

Information to Collect

Before contacting support:

  • WordPress version
  • PHP version
  • Error message (from debug.log)
  • List of active plugins
  • Theme name
  • What you did before WSOD appeared
  • What you've tried already
  • Hosting provider

Best Practices

Always Backup Before Major Changes
Backup immediately before activating plugins or making updates.

Test on Staging First
Clone production to staging. Test there. Deploy when stable.

Keep FTP Credentials Accessible
Store securely in password manager. You'll need them for recovery.

Enable Debug Logging
WP_DEBUG_LOG = true always. Helps diagnose issues quickly.


Related articles

Something missing or out of date? Tell support.