Problem
Scheduler reconciliation returns queued requests to pending when their selected registry target disappears or moves queues. Invalid pending targets are currently only logged and reported through telemetry.
A request explicitly pinned to an agent version that has been deleted, removed, or retired can therefore remain pending indefinitely unless that exact target is restored.
This was identified during review of #1381.
Expected behavior
Terminalize requests whose explicitly selected target is permanently unavailable, with a clear failure reason such as agent_version_unavailable.
Preserve recovery for cases that may become valid again:
- A version that moved to another queue should be returned to
pending and dispatched to its current queue.
- A temporary agent outage should remain recoverable.
- Requests must not be silently migrated to another agent version because that could change execution behavior and undermine benchmark reproducibility.
Implementation notes
Update invalid-pending-target reconciliation to distinguish permanent invalidity from temporary unavailability. Add coverage for:
- deleted agent
- missing or retired exact version
- queue movement
- temporary agent unavailability
- no silent version substitution
Keep the terminal status and failure metadata consistent with existing request lifecycle conventions.
Problem
Scheduler reconciliation returns queued requests to
pendingwhen their selected registry target disappears or moves queues. Invalid pending targets are currently only logged and reported through telemetry.A request explicitly pinned to an agent version that has been deleted, removed, or retired can therefore remain pending indefinitely unless that exact target is restored.
This was identified during review of #1381.
Expected behavior
Terminalize requests whose explicitly selected target is permanently unavailable, with a clear failure reason such as
agent_version_unavailable.Preserve recovery for cases that may become valid again:
pendingand dispatched to its current queue.Implementation notes
Update invalid-pending-target reconciliation to distinguish permanent invalidity from temporary unavailability. Add coverage for:
Keep the terminal status and failure metadata consistent with existing request lifecycle conventions.