---
title: "Interrupt Session"
method: POST
path: "/sessions/{session_id}/interrupt"
tags: ["sessions"]
---

# Interrupt Session

`POST /sessions/{session_id}/interrupt`

Flag the active turn for the compressed wrap-up (decision 17).

The sandbox entrypoint's control-signal poll picks the flag up and calls
interrupt() with a ~60-90s budget. 409 when no turn is active — including
the crashed-turn window, where only the recovery sweep frees the lock
(accepted for alpha, first-review H1; the UI shows honest copy).

## Path parameters

- `session_id` string, uuid, required

## Headers

- `X-Posthog-Session-Id` string, nullable
- `X-Client-Mobile` string, nullable

## Response `200`

Successful Response

- InterruptSessionResponse
  - `turn_id` string, required
  - `interrupt_requested_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/nanocorp/apis/nanocorp-api.md) · [All operations](https://skmtc.dev/nanocorp/apis/nanocorp-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nanocorp/nanocorp-api/revisions/04b208d3215b/schema)
