---
title: "Abandon Sweep"
method: POST
path: "/internal/evals/rollout-consistency/sweeps/{sweep_id}/abandon"
tags: ["internal"]
---

# Abandon Sweep

`POST /internal/evals/rollout-consistency/sweeps/{sweep_id}/abandon`

## 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/internal/evals/rollout-consistency/sweeps/{sweep_id}/abandon`
- Auth: none declared

Stop a sweep and release the company, without waiting out Hatchet's timeouts.

The recovery path for a sweep whose worker was evicted: the row says RUNNING, nothing will move
it, and `reap_stale_sweeps` does not touch it for nine hours — during which the company cannot
be swept, because the row it would clear is the one blocking the start that would clear it.

## Path parameters

- `sweep_id` string, uuid, required

## Response `200`

Successful Response

- SweepSummary: One row in the sweep list.
  - `sweep_id` string, uuid, required
  - `company_id` string, uuid, required
  - `company_name` string, nullable, required
  - `window_days` integer, required
  - `status` 'queued' | 'running' | 'succeeded' | 'failed', required: Lifecycle of one sweep. Mirrors `ApplicabilityRunStatus` deliberately.
  - `stage` 'queued' | 'gathering' | 'analysing' | 'comparing' | 'done', required: What the sweep is doing right now. Committed *before* the work it names starts, so a watcher sees the stage currently taking the time rather than the last one that finished. `ANALYSING` is where nearly all of it goes.
  - `stalled` boolean, required
  - `rollout_enrolled` boolean, required
  - `created` string, date-time, required
  - `finished_at` string, date-time, nullable, required
  - `collateral_analysed` integer, required
  - `visible_agreement_rate` number, nullable, required
  - `visible_flips` integer, required
  - `agreement_rate` number, nullable, required
  - `flagged_lost` integer, required
  - `dismissed_reintroduced` integer, required
  - `config_a` AnalysisConfigOption, required: One configuration an operator may run a sweep under. Served from the registry rather than typed by the frontend so the two cannot disagree about what a key means — a page offering a configuration this build does not have would start a sweep the worker refuses.
    - `key` string, required
    - `label` string, required
    - `judge_model` string, required
    - `judge_temperature` number, required
  - `config_b` AnalysisConfigOption, required: One configuration an operator may run a sweep under. Served from the registry rather than typed by the frontend so the two cannot disagree about what a key means — a page offering a configuration this build does not have would start a sweep the worker refuses.
    - `key` string, required
    - `label` string, required
    - `judge_model` string, required
    - `judge_temperature` number, required

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-08** `9fe2fb8a3631`: 2 info
  - added the required property `config_a` to the response with the `200` status
  - added the required property `config_b` to the response with the `200` status

[Operation history](https://skmtc.dev/kobaltlabs/apis/fastapi/changes/internal/evals/rollout-consistency/sweeps/:sweep_id/abandon/post.md)

---

[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)
