Summary
I observed a mismatch between fleet-facing device status and the device’s actual runtime state.
A device can be actively handling work, while fleet discovery still reports it as availability="available".
This makes orchestration unreliable because callers can select a device that is already occupied.
Reproduction
- Start a device whose runtime status can change over time.
- Cause the device to enter a busy state.
- Check the device-specific runtime state and confirm it is busy.
- Check fleet discovery /
list_devices(...).
- Observe that the device may still appear
available.
Expected behavior
Fleet-facing status should reflect the device’s current runtime status closely enough for orchestrators to make correct scheduling decisions.
At minimum, a busy device should not continue to appear available in fleet discovery.
Actual behavior
The device can be actively busy while the registry / fleet view still shows it as available.
Suspected cause
The runtime appears to snapshot device status during initialization and reuse that stored payload for registration.
The heartbeat path appears to support dynamic fields through a heartbeat provider, but does not automatically propagate the device’s current status on each heartbeat.
That can leave the registry with stale status even if the device’s local runtime state has changed.
Why this matters
This can lead to:
- double-dispatch onto a single busy device
- misleading fleet state in tools and UIs
- unnecessary compensating logic in orchestrators that should be able to trust fleet status
Notes
This appears to be a generic status propagation issue in the runtime / registration / heartbeat path, not a problem specific to one particular device implementation.
Summary
I observed a mismatch between fleet-facing device status and the device’s actual runtime state.
A device can be actively handling work, while fleet discovery still reports it as
availability="available".This makes orchestration unreliable because callers can select a device that is already occupied.
Reproduction
list_devices(...).available.Expected behavior
Fleet-facing status should reflect the device’s current runtime status closely enough for orchestrators to make correct scheduling decisions.
At minimum, a busy device should not continue to appear
availablein fleet discovery.Actual behavior
The device can be actively busy while the registry / fleet view still shows it as
available.Suspected cause
The runtime appears to snapshot device status during initialization and reuse that stored payload for registration.
The heartbeat path appears to support dynamic fields through a heartbeat provider, but does not automatically propagate the device’s current status on each heartbeat.
That can leave the registry with stale status even if the device’s local runtime state has changed.
Why this matters
This can lead to:
Notes
This appears to be a generic status propagation issue in the runtime / registration / heartbeat path, not a problem specific to one particular device implementation.