Machine Diagnostics
Use diagnostics when a machine did not stop when you expected. They report on the inactivity daemon that runs on the machine.
devsy machine diagnostics <machine-name>The output separates the provider's machine state from the daemon's state, and lists the last patrol and each workspace. Add --result-format json for scripts.
When a machine stops
The daemon stops a machine only when every workspace on it is idle. A workspace that is busy, invalid, or has auto-stop turned off blocks the stop. An inactivity timeout must be a positive duration such as 30m.
The shutdown candidate shown for a workspace is when it becomes eligible to stop. New activity moves it, and other workspaces can still block the machine.
Fields
| Field | Meaning |
|---|---|
| Provider state | The last machine state the provider reported. |
| Daemon health | Whether the daemon's last operation succeeded. |
| Snapshot freshness | Whether the daemon updated its snapshot recently. |
| Last patrol | When the daemon last checked workspace inactivity. |
| Last daemon error | The latest failure in this daemon session. It stays after recovery, so check its timestamp. |
| Shutdown candidate | Set when every workspace check allows a stop. Check the provider state to see whether the machine stopped. |
Events
devsy machine logs <machine-name>This shows recent daemon events: starts and stops, workspace discovery, inactivity deadlines, and shutdown results. Add --follow to keep polling for new ones. Older events are rotated out, and the output tells you when it detects a gap.
shutdown.succeeded means the stop command returned successfully. Check the provider state to confirm the machine stopped. If a completion event is missing, the machine may have shut down before it could be written.
Diagnostics never start a stopped machine. If they are stale or unavailable, check the provider state and connection first.