Troubleshooting
Updated 2026-09-08 · Pharos 0.5.10
Checks are not running
- Prove the runner works:
php artisan pharos:check --force. If that works but nothing happens on its own, the scheduler is the problem. - Prove the scheduler fires:
php artisan schedule:run, then check the cron line uses an absolute path and the right PHP binary. On Docker,docker compose ps— the scheduler must be up. - Check the component is enabled. Disabled components are skipped entirely.
- If every HTTP check says
No response, your host almost certainly hasallow_url_fopenoff or blocks outbound HTTP. - Look in
storage/logs/laravel.log. The shipped log level iswarning.
A component is stuck down
- Run
php artisan pharos:check --forceand read the message beside it. - For heartbeats, call the URL by hand. A 404 means the token is wrong; a 200 means Pharos is fine and your cron is not calling it.
- Check nothing else owns it. A workflow that also sets this component will fight the built-in check every minute — pick one owner.
The admin looks stale
Admin pages already send no-store, so the browser cannot serve you a screen the
server never rendered. If it persists, something in front of Pharos is caching — exclude
/admin/* from it. After editing .env, run
php artisan optimize:clear.
Mail is not sending
- Open Settings → Mail and press Send test. The result tells you whether the connection works before any subscriber is involved.
- What is saved there wins; anything left blank falls back to the
MAIL_*lines in.env. The screen shows the effective sender and host it will use. - Subscriber mail is sent from the cron line, so confirm the scheduler is firing (see above) — a paused scheduler means no confirmation and no incident mail.
- Nothing arrives but the test passes? Check the address is confirmed under Subscribers; an unconfirmed address is never mailed.
Written against the shipping source. If something here does not match what you see, the source is right and this page is wrong — please say so.