Tried to reproduce this on main at e9236274a3, with the Claude Agent provider and "Continue threads after server update" on (the default):
- A thread running a long foreground Bash turn, with a second message queued. Graceful server stop, then restart. The restart continuation started its run within a second. Resuming the queue from the web client (Send now, which sends
queued-run.start) started the queued run at once. - The same setup, but the server process was killed with SIGKILL mid-turn and then relaunched. Startup recovery queued one
provider-runtime.continueper thread. Both were claimed within about 0.1 s, and theirprovider-turn.starteffects ran within 0.4 s.
In neither case did a start sit idle.
The server runs a thread's effects one at a time, in order. So a queued-run.start that is accepted but never spawns an agent usually means its provider-turn.start effect is waiting behind another effect on the same thread. To tell which one held yours, could you share the following?
- The effect rows for one of the affected threads, from
statev2.sqlitein your T3 data folder (userdata). Please send them from a copy, not the live file, and redact paths as needed:If those rows are already gone, send them after it happens again.sql1 select rowid, effect_type, status, attempt_count, created_at, available_at, lease_expires_at, completed_at, substr(last_error, 1, 200) 2 from orchestration_v2_effect_outbox 3 where thread_id = '<thread id>' 4 order by rowid desc limit 20; - From the server trace, the
OrchestrationEffectExecutorV2.executespans, with their effect type and duration, between the relaunch and the moment the threads started (about 15 minutes later). - Whether "continue where you left off" was typed by you, or whether it is the "T3 Code restarted and resumed this turn" notice that the server adds after a restart.
- Roughly how large the affected projects' working trees are, including untracked files.