> ## Documentation Index
> Fetch the complete documentation index at: https://docs.usepatchwork.co/llms.txt
> Use this file to discover all available pages before exploring further.

# The Outcome object

> Your report of what happened to an action the agent proposed.

An outcome resolves a `proposed_action` tool call — work Patchwork could not perform itself. Posting one resumes the run.

See [Outcomes](/guides/outcomes) for the flow.

## Posting

`POST /v1/loom/runs/{run_id}/outcome`

```json theme={null}
{
  "tool_call_id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
  "state": "occurred",
  "detail": { "signed_at": "2026-08-30T12:04:00Z" }
}
```

<ParamField body="tool_call_id" type="uuid" required>
  From `pending_action` on `GET /v1/loom/threads`.
</ParamField>

<ParamField body="state" type="enum" required>
  `occurred` or `failed`.
</ParamField>

<ParamField body="detail" type="object">
  Optional structured context. Recorded on the outcome and passed to the model.
</ParamField>

Returns `202` with the run id and its new state. Posting an outcome for a tool call that already has one succeeds without changing anything.

## As read in a trace

```json theme={null}
{ "state": "occurred", "detail": { }, "created_at": "2026-08-30T12:04:01Z" }
```

<ResponseField name="state" type="enum" required>
  `occurred` or `failed`.
</ResponseField>

<ResponseField name="detail" type="object">
  Whatever you reported.
</ResponseField>

## Errors

| Code | Status |
| - | - |
| `unknown_action` | `404` |
| `not_awaiting_outcome` | `422` |
| `invalid_state` | `422` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.