---
title: "Cancel a pending app build"
method: POST
path: "/api/v1/app-builds/{buildId}/cancel"
tags: ["Apps"]
---

# Cancel a pending app build

`POST /api/v1/app-builds/{buildId}/cancel`

## Request

- Base URL: `https://charm.ing`
- URL: `https://charm.ing/api/v1/app-builds/{buildId}/cancel`
- Auth: HTTP bearer

Cancel pending work using current user source access. Repeated cancellation is safe. A canceled operation cannot publish even if remote work finishes later; the active app stays unchanged. Cancellation remains available after authoring cohort removal. Browser form submissions render the terminal result as HTML.

## Path parameters

- `buildId` string, required

## Response `200`

Current build operation.

- AppBuildResponse
  - `ok` true, required
  - `buildId` string, required
  - `intent` 'create' | 'update' | 'migrate' | 'restore' | 'copy', required
  - `state` 'queued' | 'resolving' | 'building' | 'validating' | 'published' | 'failed' | 'superseded' | 'canceled' | 'expired', required
  - `sourceEtag` string, required
  - `statusUrl` string, uri, required
  - `retryAfterSeconds` integer
  - `appId` string, uuid
  - `revision` integer: Published app source revision. Present only after successful publication.
  - `desiredRevision` integer
  - `activeRevision` integer
  - `url` string, uri
  - `attempts` integer, required
  - `acceptedAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `finishedAt` string, date-time, nullable, required
  - `elapsedMs` integer, required
  - `lockState` 'locked' | 'unresolved', required
  - `inputDigest` string, required
  - `lockDigest` string
  - `resolvedDependencies` object
    - `server` object, required
    - `client` object, required
  - `queueDeadline` string, date-time, required
  - `deadline` string, date-time, required
  - `inspectionExpiresAt` string, date-time, nullable, required
  - `idempotencyExpiresAt` string, date-time, nullable, required
  - `source` object
    - `module` string, required
    - `ui` string, nullable, required
    - `styles` string, nullable, required
    - `description` string, nullable, required
  - `error` object
    - `kind` string, required
    - `message` string, required
    - `retryable` boolean, required
    - `details` union
      - object
        - `execution` 'not_started' | 'may_have_run', required
        - `operationId` string, required
        - `reservationId` string
      - object
        - `execution` 'may_have_run', required
    - `target` string
    - `specifier` string
    - `line` integer
    - `column` integer

## Other responses

- `303`: Browser navigation to the actual published app URL.
- `401`: User authentication required.
- `403`: Cookie-backed mutations must come from the Charming origin.
- `404`: Build not found or inaccessible.

---

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