Reference
Troubleshooting¶
Common failures and how to resolve them. If something here doesn't match what you're seeing, check the application logs first — they're the single best source of truth.
Service won't start¶
Port already in use¶
Another process is binding 514 or 5000.
Stop the conflicting process or change the LuceDev port in Settings → Server (then restart).
Permission issues¶
The service runs as Local System by default. If you moved the install directory or changed ACLs, the service may lose access to its own data files. Restore default permissions or reinstall.
Corrupt settings.json¶
If settings.json has invalid JSON or an out-of-range value, the service may crash on startup. Check the application logs:
To reset to defaults, delete settings.json and restart — the server creates a fresh one with defaults on next launch.
Dashboard won't load¶
Symptom: Browser shows connection refused or times out at http://<server-ip>:5000.
- Confirm the service is running:
sc query LuceDevSyslog - Check the configured port in
settings.json— it may not be 5000 anymore - Try the LuceDev Syslog Dashboard Start Menu shortcut — it reads the configured port automatically
- Confirm Windows Firewall isn't blocking the port
- When accessing from another machine, use the server's IP not
localhost
- Confirm the service is running:
sudo systemctl status lucedev-syslog - Check the configured port in
/var/lib/lucedev-syslog/settings.json - Check UFW:
sudo ufw status - When accessing from another machine, use the server's IP not
localhost
Not receiving syslog messages¶
Symptom: Dashboard loads but no logs arrive.
- Confirm the listener — the green status dot in the top-right of the dashboard shows the active listener and port.
- Verify the source — check device-side configuration. Many devices need a syslog facility set in addition to the destination.
-
Test locally:
-
Check both firewalls — host firewall and any network firewall between source and server.
- Check the bind address — if
syslog_hostis set to127.0.0.1, only local traffic is received. Use0.0.0.0to listen on all interfaces. - License state — when unlicensed, the syslog receiver silently drops incoming messages. Check Settings → License for the current state.
Slow dashboard¶
Symptom: Pages take seconds to load, especially when scrolling deep.
- Use an SSD. Spinning disks are the #1 cause of slow SQLite queries on large databases.
- Reduce retention. A smaller database scans faster. Drop from 90 to 30 days if you don't need the history.
- Run VACUUM from Settings → Database → Maintenance after large archival or retention changes. SQLite holds onto deleted pages until VACUUM reclaims them.
- Rebuild the stats cache if dashboard counters look wrong — Settings → Database → Maintenance.
- Check available disk space — SQLite degrades badly when the volume is nearly full.
Service restart from the dashboard doesn't work¶
The restart mechanism uses Windows Task Scheduler to issue net stop / net start from a context that survives the service stopping. Make sure:
- The Task Scheduler service is running:
sc query Schedule - The application is running as the WinSW Windows service (not via
python main.pydirectly) - The service account has permission to create scheduled tasks (Local System does by default)
Dev mode caveat
When running main.py directly during development, the restart button can't work — there's no service to restart.
SmartScreen warning on Windows install¶
Symptom: Windows shows "Windows protected your PC" when running the installer.
This is because the installer is new and hasn't built download reputation yet. Click More info → Run anyway to proceed.
Email notifications not sending¶
- Send a test email from Settings → Email (SMTP) — the inline error tells you exactly which step failed.
- Check the application logs for SMTP error lines (search for
smtpliborFailed to send notification). - Confirm your SMTP relay accepts connections from the syslog server's IP. Many providers restrict by source.
- Confirm the From address is allowed to send from your relay (Gmail and Microsoft 365 reject mismatched From addresses).
- Check Settings → Notifications:
- Severity alerts on? Severity levels selected?
- Recipients filled in?
- Cooldown not so long that you're suppressing your own test?
License says "Server unreachable" but my internet works¶
The server hits https://lucedev.com/api/validate. If your network blocks outbound HTTPS to lucedev.com:
- Confirm the syslog VM has outbound 443 to lucedev.com
- If you run a corporate proxy, the proxy CA cert must be trusted by the Python runtime
- The server enters grace state and stays usable for 7 more days while you resolve the network path
Where to find the application logs¶
Application logs are also written by the WinSW wrapper on Windows (rolling at 10 MB, 3 files kept).