---
title: "Cancel Conversation Turn"
method: POST
path: "/api/v1/chat-ai/conversations/{conversation_id}/cancel"
tags: ["chat-ai", "chat_messages"]
---

# Cancel Conversation Turn

`POST /api/v1/chat-ai/conversations/{conversation_id}/cancel`

Cancel the conversation's running detached turn.

The Stop button's server-side half (CHAT_DETACHED_TURNS_V1): cancels the
background task so generation actually stops instead of merely closing the
caller's reader. The turn partial-persists exactly as a client abort always
did. Idempotent — no active turn returns `{"cancelled": false}`, which is
the normal race with a turn that just finished, not an error. Ownership is
enforced exactly as `send_message`.

## Path parameters

- `conversation_id` string, uuid, required

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

## Changes

> 19 revisions in range; 1 not diffed.

- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/chat-ai/conversations/:conversation_id/cancel/post.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/34f2d9e81b0b?raw)
