ExpressionEngine White Screen of Death

When $debug = 1 doesn't come to the rescue.

We all know that by editing the index.php or admin.php files and setting $debug = 1 should display errors.

Sometimes, this doesn't work and you're still staring at a "white screen of death".

In these cases, the code shown below, should work.

Paste this into the top of index.php or admin.php (depending on where you're getting the white screen)  and (in most cases) you'll finally see what's causing the problem.

ini_set('display_errors', 'On');
ini_set('html_errors', 0);
function ShutdownHandler() {
    if(@is_array($error = @error_get_last())) {
        return(@call_user_func_array('ErrorHandler', $error));
function ErrorHandler($type, $message, $file, $line) {
    $_ERRORS = Array(
        0x0001 => 'E_ERROR',
        0x0002 => 'E_WARNING',
        0x0004 => 'E_PARSE',
        0x0008 => 'E_NOTICE',
        0x0010 => 'E_CORE_ERROR',
        0x0020 => 'E_CORE_WARNING',
        0x0040 => 'E_COMPILE_ERROR',
        0x0080 => 'E_COMPILE_WARNING',
        0x0100 => 'E_USER_ERROR',
        0x0200 => 'E_USER_WARNING',
        0x0400 => 'E_USER_NOTICE',
        0x0800 => 'E_STRICT',
        0x1000 => 'E_RECOVERABLE_ERROR',
        0x2000 => 'E_DEPRECATED',
        0x4000 => 'E_USER_DEPRECATED'
    if(!@is_string($name = @array_search($type, @array_flip($_ERRORS)))) {
        $name = 'E_UNKNOWN';
    return(print(@sprintf("%s Error in file %s at line %d: %s\n", $name, @basename($file), $line, $message)));
$old_error_handler = set_error_handler("ErrorHandler");

Remember - remove this code when you're done. Don't leave it lying around on a production system!

The above error handler code was copied from another post somewhere a few years ago and we can't remember where. If the original author gets in touch with us we'd be more than happy to give them credit here as it's got us out of a tricky situation more than once.

Merlin engine logo

The data revolution is here.

Merlin THE API builder for developers. Test it now

Get VIP access