---
title: "Stop Precompute Build"
method: POST
path: "/v2/precompute/build/{job_id}/stop"
tags: ["Precompute Internal"]
---

# Stop Precompute Build

`POST /v2/precompute/build/{job_id}/stop`

Stop a running build, wherever it is running.

The break glass for a build that is alive but wedged: the lease it renews
keeps it from expiring on its own, so an operator has to be able to say so.
Releases the build lock, marks the job stopped, and broadcasts a cancel to
every pod.

Nothing being served changes. A build only alters what is published in its
final phase, so one stopped before that has published nothing, and whatever
it staged stays in Redis for ``POST /activate`` to take live if that turns
out to be wanted.

There is no restart endpoint: restarting is this call followed by
``POST /build``, which is a new job with its own record either way.

Returns the stopped job in the same shape ``GET /build/{job_id}`` serves,
with what the stop itself did alongside it.

## Path parameters

- `job_id` string, required

## Request body

- StopRequest
  - `reason` string, nullable — Why the build was stopped. Recorded on the job and its history rows; defaults to a plain operator stop.

## Response `200`

Successful Response

- unknown

## Other responses

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

---

[API](https://skmtc.net/carbonarc/apis/carbon-arc-api-documentation.md) · [All operations](https://skmtc.net/carbonarc/apis/carbon-arc-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/carbonarc/carbon-arc-api-documentation/revisions/4850d81778a4/schema)
