---
title: "Cancel Session Task"
method: POST
path: "/api/chat/sessions/{session_id}/cancel"
tags: ["v2", "chat", "chat"]
---

# Cancel Session Task

`POST /api/chat/sessions/{session_id}/cancel`

Cancel an in-flight task for a session.

Handles both lifecycle states uniformly:

* **Queued** (``chatStatus='queued'``) — the dispatcher hasn't
  claimed the row yet.  Flip the session back to ``idle`` and
  return; no executor cancel event needed.
* **Running** (``chatStatus='running'``) — publish a cancel event
  to the executor via RabbitMQ FANOUT, then poll Redis until the
  task status flips out of ``running`` or a 5 s timeout is hit.

## Path parameters

- `session_id` string, required

## Response `200`

Successful Response

- CancelSessionResponse — Response model for the cancel session endpoint.
  - `cancelled` boolean, required
  - `reason` string, nullable

## Other responses

- `401` — Authentication required
- `422` — Validation Error

---

[API](https://skmtc.net/significant-gravitas/apis/autogpt-agent-server.md) · [All operations](https://skmtc.net/significant-gravitas/apis/autogpt-agent-server/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/significant-gravitas/autogpt-agent-server/versions/382041c7ecb2/schema)
