Agent waiting for a runner slot¶
An agent shown as WAITING on runner slots has finished its dependency and time-based waits, but has not yet entered
the execution loop. SASE limits live root agents globally using max_running_agents (default: 10). A prompt can use
%wait(runners=N) to override the threshold for that launch.
The queue is first-in, first-out across all projects. A live earlier waiter is therefore allowed to start before later launches, even when a later launch has a higher threshold. Child agents are exempt so a running parent can safely wait for child work.
To diagnose a wait:
- Check active and waiting agents with
sase agent listor the ACE Agents tab. - Inspect the launch's
waiting.json.wait_runnersis the effective existing-runner threshold andslot_requested_atis its FIFO queue time. - Raise
max_running_agentsinsase.ymlif more concurrency is safe. Parked agents reread configuration and normally react within about two seconds. - Kill an unwanted parked agent normally. Dead or stale waiter PIDs are ignored automatically and cannot wedge the queue.
The slot gate runs in each agent process under a global file lock. It does not depend on the axe daemon, so restarting
axe does not release or repair a slot wait. A %wait(runners=0) launch is intentionally a drain barrier: it starts only
after all currently running root agents finish, and later launches queue behind it.