'I got Livewire\Redirector::$headers error with custom Exception raised

When In Laravel 8 / livewire 2.5 I make checks and logout from livewire booted method :

    if($method_name == 'edit' and $loggedUser->can(PERMISSION_EDIT_ITEM)) {
        Auth::logout();
        return redirect('/login')
            ->with('status', 'You have no permission to enter CrudItems.edit method');
    }

it works ok for me. But when use custom Exception raised :

    if($method_name == 'edit' and $loggedUser->can(PERMISSION_EDIT_ITEM)) {
        throw new InvalidPermissionException(__FILE__, __LINE__);
    }

with file app/Exceptions/InvalidPermissionException.php:

<?php

namespace App\Exceptions;

use Exception;
class InvalidPermissionException extends Exception
{

    public function __construct($_file, $_line)
    {
        \Log::info(  ' INSIDE __construct InvalidPermissionException' );
        parent::__construct();
    }

}

and in app/Exceptions/Handler.php :

<?php

namespace App\Exceptions;

...
class Handler extends ExceptionHandler
{
    public function register()
    {
        $this->reportable(function (Throwable $e) {
            //
        });
    }

    public function render($request, Throwable $e)
    {
        $response = parent::render($request, $e);
        \Log::info(varDump($response->status(), ' -1 app/Exceptions/Handler.php $response->status()::'));
        if ($response->status() === 419) {
            \Log::info(' Expired');

            return app(LogoutResponse::class);
        }

        if ($response->status() === 401) {
            \Log::info(' 401');

            return redirect()->guest(route('login'));
        }

        $exception = Handler::prepareException($e);

        if ($exception instanceof InvalidPermissionException) {
            Auth::logout();
            return redirect('/login')
                ->with('status', 'You have no permission to enter this method');

        }

        return $response;
    }

}

I got error :

[2021-11-04 09:15:53] local.ERROR: Undefined property: Livewire\Redirector::$headers {"exception":"[object] (ErrorException(code: 0): Undefined property: Livewire\\Redirector::$headers at /projectPath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:191)
[stacktrace]
#0 /projectPath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(191): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /projectPath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(80): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->addCookieToResponse()
#2 /projectPath/vendor/laravel/framework/src/Illuminate/Support/helpers.php(263): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->Illuminate\\Foundation\\Http\\Middleware\\{closure}()
#3 /projectPath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(82): tap()
#4 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#5 /projectPath/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#6 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#7 /projectPath/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#8 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\AuthenticateSession->handle()
#9 /projectPath/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#10 /projectPath/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#11 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#12 /projectPath/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#14 /projectPath/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#16 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()

How this error can be fixed ?

Thanks in advance!



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source