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
Backup immediately before activating plugins or making updates.
Clone production to staging. Test there. Deploy when stable.
Store securely in password manager. You’ll need them for recovery.
WP_DEBUG_LOG = true always. Helps diagnose issues quickly.