---
title: "Society Progress Cancel"
method: POST
path: "/v1/mcp/society-progress/{job_id}/cancel"
tags: ["mcp-iframe-polling"]
---

# Society Progress Cancel

`POST /v1/mcp/society-progress/{job_id}/cancel`

## Request

- Base URL: `https://api.evidenso.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.evidenso.com/v1/mcp/society-progress/{job_id}/cancel`
- Auth: none declared

Cancel an in-flight society creation job from the iframe.

Same auth model as the poll endpoint: HMAC over `job_id` with the
server's signing secret. The Cancel button in the rich-UI panel
POSTs here; we proxy the call to digital-twin-api's
`POST /pipelines/jobs/{job_id}/cancel` using the service token, then
return the freshest `society_progress` payload so the iframe re-
renders to the cancelled state without waiting for the next poll
tick.

DT-API's cancel is COOPERATIVE on running jobs (worker sees the
flag at the next step boundary, unwinds, runs artifact cleanup)
and a direct status flip on queued jobs. Both paths return JSON
with the new status; we don't try to distinguish them here.

Idempotent — cancelling an already-terminal job returns its
current state.

## Path parameters

- `job_id` string, required

## Query parameters

- `sig` string, required: HMAC signature from the cancel URL.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/evidenso/apis/persona-rag-api.md) - [All operations](https://skmtc.dev/evidenso/apis/persona-rag-api/llms.txt) - [OpenAPI document](https://skmtc.dev/evidenso/apis/persona-rag-api/revisions/86408c178d4f?raw)
