---
title: "Reject Training Run"
method: POST
path: "/risk-assessment/training-runs/{training_run_id}/reject"
tags: ["risk-assessment"]
---

# Reject Training Run

`POST /risk-assessment/training-runs/{training_run_id}/reject`

## Request

- Base URL: `https://api.kobaltlabs.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.kobaltlabs.com/risk-assessment/training-runs/{training_run_id}/reject`
- Auth: none declared

Discard the proposed guidance. Nothing else moves.

The experiments stay on the factor as version rows — they are part of the
audit trail of why the rewrite was refused — but none of them is on display,
because a rejected proposal never became the factor's guidance.

## Path parameters

- `training_run_id` string, uuid, required

## Response `200`

Successful Response

- TrainingRunSummary
  - `training_run_id` string, uuid, required
  - `factor_assessment_id` string, uuid, required
  - `status` 'pending' | 'running' | 'completed' | 'failed', required
  - `outcome` 'promoted' | 'gave_up', required: How a `RiskFactorTrainingAgentRun` ended. Both are terminal tool calls, not failures: an agent that cannot justify a rewrite is expected to GIVE_UP with questions rather than promote one.
  - `proposal_status` 'active' | 'proposed' | 'hidden' | 'inactive', required: Where one `risk_factor_versions` row stands. A factor's name and slug are permanent; its description, assessment guidance, rating rubric and applicability logic are versioned, so a rewrite never destroys the text that produced historical ratings. ACTIVE is what the next assessment run uses, and a partial unique index (`uq_risk_factor_versions_one_active`) enforces at most one per factor. HIDDEN is a training agent's working draft — created mid-run and never shown to a reviewer. PROPOSED is a draft the agent promoted and the reviewer has not yet accepted or rejected. INACTIVE covers both "superseded" and "rejected"; the two are distinguishable from the training run's outcome.
  - `created` string, date-time, required
  - `started_at` string, date-time, nullable, required
  - `finished_at` string, date-time, nullable, required
  - `experiment_count` integer, required
  - `error` string, nullable, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) - [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) - [OpenAPI document](https://skmtc.dev/kobaltlabs/apis/fastapi/revisions/8587332d5e43?raw)
