Yes — that happens sometimes with Laravel Horizon if something in the setup isn’t right. A crash when Horizon starts usually points to one of these common issues:
-
Redis connection overload / wrong config
- Horizon uses Redis heavily. If your Redis connection details in
config/database.phpare wrong, or Redis is maxing out memory/CPU, Horizon can cause the server to choke. - Check Redis logs (
/var/log/redis/redis-server.log) and Laravel logs (storage/logs/laravel.log).
- Horizon uses Redis heavily. If your Redis connection details in
-
Supervisor misconfiguration (if you use it to keep Horizon alive)
- If Supervisor is restarting Horizon too fast (e.g., config loops), it can spike CPU and crash the box.
- Run
supervisorctl statusto check.
-
Horizon dashboard polling
- Horizon’s UI polls Redis for metrics — on a weak server (low memory or shared hosting), that can crash it.
-
PHP memory limit
- Horizon spawns multiple worker processes. If
php.inihas a low memory limit, each worker eats memory and the server crashes.
- Horizon spawns multiple worker processes. If
-
Too many Horizon workers configured
- In
config/horizon.php, checksupervisordefinitions. If you’ve setprocessestoo high (like50on a small server), the server may run out of RAM instantly.
- In
-
Check logs first:
tail -f storage/logs/laravel.log tail -f /var/log/syslog tail -f /var/log/redis/redis-server.log -
Lower worker count in
config/horizon.php:'supervisors' => [ 'default' => [ 'connection' => 'redis', 'queue' => ['default'], 'balance' => 'auto', 'maxProcesses' => 1, // try small first 'processes' => 1, 'tries' => 3, ], ], -
Restart Redis to clear stuck connections:
sudo systemctl restart redis -
Clear Horizon cache:
php artisan horizon:clear -
Test Horizon manually without Supervisor:
php artisan horizon→ If it runs, the issue is probably Supervisor configuration.
In most cases, the culprit is too many Horizon workers for the server resources. Start with just 1 worker, confirm stability, then scale up gradually.