The Laravel Survival Guide Portable (OFFICIAL × BREAKDOWN)
The 10 PM Deployment Rule
php artisan config:clear php artisan config:cache php artisan queue:restart Then verify: php artisan tinker --execute="dd(config('queue.default'));" Check your Eloquent::saving() event listeners. Check your observers. One of them is returning false — which cancels the save silently. the laravel survival guide
It’s 9:58 PM. You just pushed what you thought was a tiny hotfix: “Update user avatar validation.” The 10 PM Deployment Rule php artisan config:clear
tail -50 storage/logs/laravel.log | grep -E "\[[0-9]4-[0-9]2-[0-9]2.*\].*ERROR" Or use Log::error() yourself next time with a unique marker like 🚨 DEPLOY . You set QUEUE_CONNECTION=database in .env . But config/queue.php says redis because someone committed it. It’s 9:58 PM
php artisan optimize:clear php artisan config:cache # only if in production php artisan queue:restart 90% of “broken after deploy” is cached config pointing to the wrong env. Don’t tail -200 and panic. Do this:
Add this temporarily to AppServiceProvider@boot :
