No Heartbeat
A scanner stopped heartbeating but has assigned or running jobs. The threshold is 2× the offline-after window (4 minutes by default).
How to
Investigate
- Check Health > Services > Scanners for the affected scanner
- SSH to the scanner host (if reachable) and check the binary process / logs
- Network: confirm outbound HTTPS to the platform is reachable from the scanner network
If the scanner is coming back
- Drain the scanner (24h grace) so the dispatcher does not pile on more jobs while it stabilizes
If the scanner is gone
- Reassign jobs to another scanner OR fail them outright
Gotchas
- Recently provisioned scanners may not have heartbeated yet (no last_heartbeat) — those do NOT trigger no_heartbeat (use failed_scanner_auth checks).
- A heartbeat resumes auto-resolution; the alarm and state row clear without operator action.
API calls (1)
| Method | Path | Description |
|---|---|---|
| POST | /api/health/job-errors/:stateId/repair | action=drain | reassign | fail |
Related
- Job Errors Overview — Category model
- Scanner Status — Live heartbeat view