Common Issues
ScreenStop icon not appearing in menu bar / system tray
macOS:
- Check if the process is running:
- If not running, launch manually:
- If it launches but disappears, check the log:
Windows:
- Check Task Manager for
ScreenStopTray.exe - Launch manually from
C:\Program Files\ScreenStop\ScreenStopTray\ScreenStopTray.exe
Camera permission denied (macOS)
ScreenStop requires camera access to function.
- Go to System Settings > Privacy & Security > Camera
- Enable access for ScreenStopMain
- Restart ScreenStop from the menu bar icon
Station not appearing in dashboard
- Confirm the machine has network access to the dashboard URL
- Check the log for connection errors
- Verify
SCREENSTOP_DASHBOARD_URLis set to the correct address
Screen locking too aggressively / false positives
Adjust detection thresholds in the Dashboard:
- Increase
phone_confidenceto reduce false phone detections - Increase
face_confidenceto reduce false unauthorized person detections - Disable specific detection modes that are causing issues
Camera not found / black frames
- Confirm the webcam is physically connected
- On macOS, check for zombie processes holding the camera:
- Release the camera:
- Restart ScreenStop
Dashboard timestamps showing wrong time
If events appear with incorrect timestamps (e.g., 2 hours behind), this is a timezone mismatch issue fixed in v1.0.3.
Upgrade to the latest version to resolve this.
Icons showing default app icon after build (macOS)
This is a macOS icon cache issue. It resolves on its own after a system restart, or you can clear the cache manually:
sudo find /private/var/folders -name "com.apple.dock.iconcache" -exec rm -f {} \; 2>/dev/null
sudo killall Dock
Fixed automatically at build time as of v1.0.3.
ScreenStop icon appears in the Dock (macOS)
ScreenStop is a background daemon and should not appear in the Dock. If you see its icon there, it is cosmetic only — the app cannot be quit from the Dock (only "Open" is shown). The daemon continues running normally.
This resolves automatically after reinstalling with v2.0.0 or later.
USB drive not being ejected (USB Protection enabled)
- Confirm
USB_PROTECTIONis enabled for the station's department in the Dashboard - Confirm the station has no authorized person present — USB eject only fires when detection determines the workstation is unattended or accessed by an unauthorized person
- Check the log for
USB_PROTECTION_ACTIVEentries to confirm the feature is running: - On macOS, confirm the USB drive is a storage device — ScreenStop does not eject keyboards, mice, or audio devices
Print job not being cancelled (Print Protection enabled)
- Confirm
PRINT_PROTECTIONis enabled for the station's department in the Dashboard - Check the log for
PRINT_PROTECTION_ACTIVEentries - On macOS, confirm CUPS is running:
- Note: Print Protection cancels jobs that are pending or held. Jobs that have already reached the printer cannot be recalled.
Audit Mode not suppressing locks
If locks are still firing when AUDIT_MODE = true:
- Confirm the department policy was saved and the station has checked in (allow up to 10 seconds)
- Check the log for
AUDIT_MODE: lock suppressed— if absent, the config has not propagated yet - Verify
AUDIT_MODEin the station's effective config:
Docker — Dashboard container fails to start
Check the container logs:
Common causes:
| Error | Fix |
|---|---|
DASHBOARD_SECRET_KEY is required |
Add DASHBOARD_SECRET_KEY=<secret> to your .env file |
Address already in use |
Port 443 or 80 is already bound — stop the conflicting service |
cert.pem not found |
Ensure CERTS_DIR points to a directory containing cert.pem and key.pem |
Docker — Agents cannot connect to dashboard (TLS error)
If agents are reporting connection errors after switching to HTTPS:
- Confirm the agent's
dashboard_urlis set tohttps://(nothttp://) - If using a self-signed certificate, agents will reject it by default. Either:
- Use a certificate signed by your internal CA and deploy the CA cert to workstations
- Set
DASHBOARD_VERIFY_SSL=falsein the agent's AppData config (testing only — not recommended for production) - Check the agent log for the exact error:
=== "macOS"
grep -i "ssl\|certificate\|connect" ~/Library/Application\ Support/ScreenStop/screenstop.log | tail -20
=== "Windows"
Docker — Cannot log in after fresh deployment
On a fresh deployment with no users in the database, you must bootstrap using dev mode:
- Add
SCREENSTOP_DEV_MODE=trueto.env - Restart:
docker compose down && docker compose up -d - Log in with
admin/admin - Go to Admin → Users and create your real admin account
- Remove
SCREENSTOP_DEV_MODE=truefrom.envand restart again
See Docker Deployment — Bootstrap Admin Account.
Log level not changing from dashboard
Changing LOG_LEVEL in the dashboard applies on the next detection cycle without a daemon restart. This was a bug fixed in v1.0.3 — upgrade if you're on an earlier version.