# Pause a task

> Pauses a task's automation. While a pause is in force no state's `on_enter` dispatches and no retry chain continues — an agent generation, a tool call and a sub-orchestration alike — so the task stops spending without losing its place.

<Heading
  as={"h1"}
  className={"openapi__heading"}
  children={"Pause a task"}
>
</Heading>

<MethodEndpoint
  method={"post"}
  path={"/api/v1/tasks/{task_id}/pause"}
  context={"endpoint"}
>
  
</MethodEndpoint>

Pauses a task's automation. While a pause is in force no state's `on_enter` dispatches and no retry chain continues — an agent generation, a tool call and a sub-orchestration alike — so the task stops spending without losing its place.
A workflow has no run object, so this is the workflow half of pause-orchestration-run: the pause lands on the instance, which is the task. Transitions are deliberately still allowed — a move costs nothing while every dispatch it would start is suppressed — so a board stays usable under a pause. Entering a state whose dispatch is suppressed records `automation_status: paused`, which resume-task reads to know that state still owes its work.
A dispatch already in flight is left to finish, and its outcome still routes; only what would start after it is suppressed.
Idempotent: pausing an already-paused task answers with it unchanged.

<Heading
  id={"request"}
  as={"h2"}
  className={"openapi-tabs__heading"}
>
  <Translate id="theme.openapi.request.title">Request</Translate>
</Heading>

<ParamsDetails
  {...require("./pause-task.ParamsDetails.json")}
>
  
</ParamsDetails>

<RequestSchema
  {...require("./pause-task.RequestSchema.json")}
>
  
</RequestSchema>

<StatusCodes
  {...require("./pause-task.StatusCodes.json")}
>
  
</StatusCodes>
