White Screen of Death Recovery

Version: 1.2.1Last Updated: December 2025Difficulty: AdvancedTime Required: 15 minutes

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_function_name()

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:

  • Deactivate plugin via FTP (Method 1)
  • Contact hosting to upgrade PHP
  • Recommended: PHP 8.0+
  • Minimum: PHP 7.4
  • Reactivate after PHP upgrade

Scenario 3: Plugin Conflict

Multiple plugins causing conflict:

Identify culprit:

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

Scenario 4: Corrupt Files

Error:

Fatal error: Cannot redeclare function

OR

Include failed: File not found

Solution:

  • Deactivate via FTP (rename folder)
  • Delete plugin folder entirely
  • Download fresh copy from your account
  • Upload new copy via FTP
  • 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:

  • Access hosting control panel
  • Restore from most recent backup
  • Site works now, but you lost recent changes
  • Identify what caused WSOD
  • Fix issue before trying again

Emergency Mode

Create emergency access file:

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


';
    echo 'EMERGENCY MODE: All plugins deactivated.';
    echo 'Delete /wp-content/mu-plugins/emergency.php to restore normal operation.';
    echo '
'; });

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.