Exception has occurred. Illuminate\Contracts\Encryption\DecryptException: The payload is invalid.

Restarted an older project in Laravel. To my surprise there were no major headaches.

Just the time to setup my new favorite tool: Visual Studio Code. A great way to develop and debug for PHP inside or outside of containers.

Just in the middle of the first debug session Laravel drops an error: Exception has occurred. Illuminate\Contracts\Encryption\DecryptException: The payload is invalid.

A quick google finds out the page on: https://stackoverflow.com/questions/47355311/laravel-5-with-xdebug-always-throws-the-payload-is-invalid

Tried both methods and both work.

The correct solution is to just add the “XDEBUG_SESSION” cookie to the exceptions array in the App\Http\Middleware\EncryptCookies middleware.

/**
 * The names of the cookies that should not be encrypted.
 *
 * @var array
 */
protected $except = [
    'XDEBUG_SESSION'
];

But I preffer:

If the answer doesn’t work, try adding this into launch.json

{
        "name": "Listen for XDebug",
        "type": "php",
        "request": "launch",
        "port": 9001,
        "ignore": [
            "**/vendor/**/*.php"
        ]
    },

Because that way the Xdebug cookie exception does not make it to the production app and security is maintained.