> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wherobots.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Cancel a task run

> Request cancellation of a task run.

Only a run the caller's organization owns can be cancelled: any other is
404, the same answer as a run that does not exist, and nothing is touched.
A finished SCRIPT or Union run with no earlier cancel request returns 409.
Repeating an accepted cancel returns 202, including after the run finishes.

The run reads CANCELLING at once while its workload is active.
Active workloads stop asynchronously; accepting cancellation does not prove
compute has stopped. A run with no workload is finalized CANCELLED at once
and kept from starting. A recorded workload reaches CANCELLED through its
backend cancellation/destroy events. Script intent is durable; the KubeApp
cleaner retries undelivered destroys. A cancel committed before the script's
pre-deploy gate prevents execution. After that gate cancellation is best
effort: code may start briefly, and a previously won terminal result stays won.



## OpenAPI

````yaml https://api.cloud.wherobots.com/openapi.json post /task-runs/{taskRunId}/cancel
openapi: 3.1.0
info:
  title: Wherobots Cloud API
  description: |-
    Wherobots Cloud API OpenAPI specification.

        These are the API docs for the Wherobots API. You can use this to test out the API and see what it does.
        The underlying OPENAPI spec can be found at /openapi.json. This can be used to generate clients for the API.

        The Authorize button below will allow you to input an access token to authenticate to our API.
        Then all of the requests on the page should work.
        
  version: 0.0.1
servers:
  - url: https://api.cloud.wherobots.com
    description: Wherobots Cloud API
security: []
paths:
  /task-runs/{taskRunId}/cancel:
    post:
      tags:
        - task-runs
      summary: Cancel a task run
      description: >-
        Request cancellation of a task run.


        Only a run the caller's organization owns can be cancelled: any other is

        404, the same answer as a run that does not exist, and nothing is
        touched.

        A finished SCRIPT or Union run with no earlier cancel request returns
        409.

        Repeating an accepted cancel returns 202, including after the run
        finishes.


        The run reads CANCELLING at once while its workload is active.

        Active workloads stop asynchronously; accepting cancellation does not
        prove

        compute has stopped. A run with no workload is finalized CANCELLED at
        once

        and kept from starting. A recorded workload reaches CANCELLED through
        its

        backend cancellation/destroy events. Script intent is durable; the
        KubeApp

        cleaner retries undelivered destroys. A cancel committed before the
        script's

        pre-deploy gate prevents execution. After that gate cancellation is best

        effort: code may start briefly, and a previously won terminal result
        stays won.
      operationId: cancelTaskRun
      parameters:
        - name: taskRunId
          in: path
          required: true
          schema:
            type: string
            description: The id of the task run.
            title: Taskrunid
          description: The id of the task run.
      responses:
        '202':
          description: >-
            The cancel was accepted: a run still going reads CANCELLING until
            the backend confirms it CANCELLED, and a run with nothing started
            yet reads CANCELLED at once and never starts. Also returned for any
            repeat of an accepted cancel, including once the run reads
            CANCELLED; a repeat still pending is dispatched again
          content:
            application/json:
              schema: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '404':
          description: No task run of this id the caller's organization owns
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '409':
          description: >-
            The run finished (SUCCEEDED, FAILED, TIMED_OUT or CANCELLED) without
            a cancel ever being requested, so there is nothing to cancel.
            Nothing is recorded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '500':
          description: >-
            The cancel was recorded but the run's region does not resolve, so it
            could not be dispatched. It is still carried out, by the execution
            sync's next sweep
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
        '503':
          description: >-
            The cancel was recorded but could not be dispatched. Union recovery
            or the script KubeApp cleaner retries it; sending it again
            dispatches it now
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorBody'
      security:
        - bearerToken: []
        - wherobotsApiKey: []
components:
  schemas:
    ErrorBody:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/ErrorInfo'
          type: array
          title: Errors
          description: A list of errors that occurred
        requestId:
          type: string
          title: Requestid
          description: A unique identifier for the request that caused the error
      type: object
      required:
        - errors
        - requestId
      title: ErrorBody
    ErrorInfo:
      properties:
        code:
          $ref: '#/components/schemas/ErrorClass'
          description: The error code
        message:
          type: string
          title: Message
          description: A human-readable message describing the error
        details:
          type: string
          title: Details
          description: Details about the error
        path:
          type: string
          title: Path
          description: The path to the field that caused the error
        suggestion:
          type: string
          title: Suggestion
          description: Suggested action to resolve the error
          default: >-
            Contact us at support@wherobots.com to get help with resolving your
            error.
        documentation_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Documentation Url
          description: URL to related documentation
        field:
          anyOf:
            - type: string
            - type: 'null'
          title: Field
          description: The field that caused the error if applicable
      type: object
      required:
        - code
        - message
        - details
        - path
      title: ErrorInfo
    ErrorClass:
      type: string
      enum:
        - BAD_REQUEST_ERROR
        - CONFLICT_ERROR
        - INVALID_INPUT_ERROR
        - INTERNAL_SERVER_ERROR
        - UNAUTHORIZED_ERROR
        - INSUFFICIENT_PERMISSIONS_ERROR
        - THIRD_PARTY_PERMISSIONS_ERROR
        - NOT_FOUND_ERROR
        - INSUFFICIENT_QUOTA_ERROR
        - REQUEST_ENTITY_TOO_LARGE
        - FOREIGN_CATALOG_CONNECTION_FAILED
        - RATE_LIMIT_ERROR
        - RESOURCE_BUSY
        - TIMEOUT_ERROR
        - ACCOUNT_NOT_PROVISIONED
        - BAD_GATEWAY_ERROR
        - GATEWAY_TIMEOUT_ERROR
        - NOT_IMPLEMENTED_ERROR
        - GONE_ERROR
      title: ErrorClass
  securitySchemes:
    bearerToken:
      type: http
      scheme: bearer
    wherobotsApiKey:
      type: apiKey
      description: A Wherobots-generated API key
      in: header
      name: X-API-Key

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.