---
title: "Mark a retained error run as ignored or resolved (or clear triage back to open) so Activity / runList / runSummary ca..."
method: PATCH
path: "/v1/runs/{run_id}"
tags: ["runs"]
---

# Mark a retained error run as ignored or resolved (or clear triage back to open) so Activity / runList / runSummary ca...

`PATCH /v1/runs/{run_id}`

## Request

- Base URL: `https://api.kody.codes`
- URL: `https://api.kody.codes/v1/runs/{run_id}`
- Auth: HTTP bearer

Mark a retained error run as ignored or resolved (or clear triage back to open) so Activity / runList / runSummary can hide already-handled noise without deleting history. Only error runs accept ignored/resolved; original error details stay intact. Optional note records why. Default runList and runSummary hide ignored/resolved errors — pass error_triage "all", "ignored", or "resolved" on runList to inspect them.

Org permission: `job:write`.

## Path parameters

- `run_id` string, required: Run id from runList, runGet, jobGet recent_runs, or another run reference.

## Request body

- object
  - `triage` 'ignored' | 'resolved' | 'open', required: Set soft triage on a retained error run: ignored (noise / soft-failure), resolved (already fixed), or open (clear triage and show it again in default listings). Does not delete the run or change error_name / error_message.
  - `note` string: Optional note (at most 2000 characters). Omit to preserve the current note when setting ignored/resolved; pass an empty string to clear it. Cleared automatically when triage is set to open.

## Response `200`

Success.

- object
  - `run` object, required
    - `id` string, required
    - `surface` 'execute' | 'export' | 'subscription' | 'app_fetch' | 'app_realtime' | 'job' | 'workflow' | 'retriever' | 'webhook', required
    - `status` 'running' | 'success' | 'error', required
    - `name` string, nullable, required
    - `package_id` string, nullable, required
    - `kody_id` string, nullable, required
    - `source_id` string, nullable, required
    - `published_commit` string, nullable, required
    - `storage_id` string, nullable, required
    - `job_id` string, nullable, required
    - `workflow_id` string, nullable, required
    - `invocation_id` string, nullable, required
    - `session_id` string, nullable, required
    - `idempotency_key` string, nullable, required
    - `parent_run_id` string, nullable, required
    - `started_at` string, required
    - `finished_at` string, nullable, required
    - `duration_ms` integer, nullable, required
    - `error_name` string, nullable, required
    - `error_message` string, nullable, required
    - `error_triage` 'ignored' | 'resolved', nullable, required: Soft triage for error runs: ignored, resolved, or null when open / not an error.
    - `triage_note` string, nullable, required
    - `triaged_at` string, nullable, required
    - `triaged_by` string, nullable, required
    - `metadata` object, required
    - `log_count` integer, required

## Other responses

- `400`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `401`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `403`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `404`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `409`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `413`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `429`: Too many requests (edge IP/token limit) or an entitlement / plan-cap limit. Wait at least `Retry-After` seconds before retrying.
- `500`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `503`: Error envelope `{ "error": { "code", "message", "details"? } }`.
- `default`: Error envelope `{ "error": { "code", "message", "details"? } }`.

---

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