---
title: "Resolve Post Install Warranty Exception"
method: POST
path: "/warranty-runs/post-install/exceptions/resolve"
tags: ["operator-runs"]
---

# Resolve Post Install Warranty Exception

`POST /warranty-runs/post-install/exceptions/resolve`

Mark one flagged case as handled (retry scheduled / resolved without retry).

Records the resolution on the job's existing pilot_workflow_requests ledger
row (found by its deterministic request_id), so there is no separate table:
  - resolved_no_retry / already_registered -> finalized (status 'resolved');
    the daily pipeline skips it and the case is hidden permanently.
  - schedule_retry / error_fixed -> reopened to status 'ready', so the next
    enqueue run dispatches the stored Pilot request for another attempt.
The org-scoped request_id means one org can never resolve another org's case.

## Request body

- ResolveExceptionRequest — Body for resolving one flagged case from the dashboard.
  - `case_key` string, required
  - `resolution` 'schedule_retry' | 'resolved_no_retry' | 'error_fixed' | 'already_registered', required
  - `job_id` string, nullable
  - `kind` string, nullable
  - `reason` string, nullable
  - `note` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `404` — Not found
- `422` — Validation Error

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noso/apis/crucible-backend-api/revisions/6139ed1f70a9?raw)
