Stop waiting on a handle
Drops the conversation’s claim on a handle. A run parked on that handle wakes, is told the handle is no longer being waited on, and carries on — it reports back, asks a question, or does something else. The run finishes normally, so the conversation is free to take its next turn immediately.
What this does not do
It does not cancel the work. The job behind the handle keeps running exactly as before, the same way a wait timing out leaves its job alone. Stop the job through its own API if that is what you want.
It does not cancel the run. The turn completes on its own terms, with the abandoned wait recorded in the conversation — nothing is discarded.
The model is told the handle reads stopped_waiting, which says what happened to the wait
and claims nothing about the task.
When there is nothing to wake
The claim is dropped whether or not a run is currently parked on it, and the response says
when. If the run had already moved on, or the wait had already finished, there is simply
nothing to interrupt — and a later wait_for on that handle reads the dropped claim rather
than waiting again.
Idempotent: cancelling the same handle twice returns the same cancelled_at.
Permission
agent_conversations resource with write verb.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The conversation's UUID.
UUID identifying a conversation. Returned from POST /agents/conversations and used
in every other agent endpoint that operates on this conversation.
"bc2505b7-068d-44ed-8055-a6f6ffe54ab1"
The handle to stop waiting on, exactly as job_monitor returned it. Opaque — do not
parse or construct one. The pattern is the alphabet handles are drawn from, not their
format: a segment outside it does not match this route and returns 404, the same answer
an unusable handle gets.
128^[A-Za-z0-9_-]+$"wt_9d06ad7bc3674fe1aa789ec2eda55c3c"
Response
The handle, with the moment its claim was dropped.
A handle after its claim has been dropped. Nothing here reports how the task behind the handle is doing: dropping a claim does not touch the task, so its own API is where to look.
The handle, as job_monitor returned it.
"wt_9d06ad7bc3674fe1aa789ec2eda55c3c"
What sort of task the handle points at.
job When the claim was dropped. Set on the first cancel and never moved, so cancelling the same handle again reports the original moment.
"2026-08-17T12:31:07Z"

