Stop Thread
POST
/api/threads/{threadId}/stopStops the execution in flight on a thread. The request has no body.
When an execution is in flight, the runtime aborts it:
- The run settles as
idlewith reasonaborted_by_user. The WebSocket stream sends athread_statusframe with that status. state.execution.abortSignalfires in the running tool or hook.- Each tool call that has no result receives a tool message with the content
Execution stopped by userandtool_statuserror. - Each message with status
pendingchanges tofailed. - The thread stores one
systemmessage with the contentExecution stopped by user. - The log stream sends a
stopped_by_userframe.
The route is idempotent. A request to a thread with no execution in flight returns the same 200 response. That request stores no stop message and sends no stopped_by_user frame. The run status stays unchanged.
The thread stays available after a stop. The next message starts a new execution with the history intact.
threadIdstringrequiredThe unique thread identifier (UUID)
statusstringrequiredAlways stopped
messagestringrequiredA fixed description: Thread execution stopped