---
title: "Set (or clear) the human-asserted mission disposition (admin+): why the mission ended"
method: PATCH
path: "/missions/{issueId}"
tags: ["missions"]
---

# Set (or clear) the human-asserted mission disposition (admin+): why the mission ended

`PATCH /missions/{issueId}`

## Request

- Base URL: `https://api.letsship.ai/v1`
- URL: `https://api.letsship.ai/v1/missions/{issueId}`
- Auth: none declared

Records WHY a mission ended: 'product' (real work, resolved on its merits), 'probe' (a deliberate throwaway exploration), 'superseded' (obsoleted by another mission, in which case pass supersededBy), or 'takeover' (a human finished the work outside the pipeline). Human-asserted only: never written by inference, and heuristics may only propose a value for a human to confirm here.

## Path parameters

- `issueId` string, required

## Request body

- SetMissionDispositionRequest
  - `disposition` 'product' | 'probe' | 'superseded' | 'takeover', nullable, required
  - `supersededBy` string, nullable

## Response `200`

Disposition set

- SetMissionDispositionResponse
  - `ok` boolean, required
  - `issueId` string, required
  - `disposition` 'product' | 'probe' | 'superseded' | 'takeover', nullable, required
  - `supersededBy` string, nullable, required

## Other responses

- `403`: Forbidden
- `404`: Not found
- `422`: supersededBy requires disposition=superseded

---

[API](https://skmtc.dev/letsship/apis/ship-api.md) · [All operations](https://skmtc.dev/letsship/apis/ship-api/llms.txt) · [OpenAPI document](https://skmtc.dev/letsship/apis/ship-api/revisions/e6eac1bcadd4?raw)
