---
title: "Cancel Job"
method: POST
path: "/jobs/{job_id}/cancel"
tags: ["jobs"]
---

# Cancel Job

`POST /jobs/{job_id}/cancel`

## Request

- Base URL: `https://api.ionworks.com`
- URL: `https://api.ionworks.com/jobs/{job_id}/cancel`
- Auth: none declared

Cancel a job if it hasn't been completed yet.

Returns the updated job on success, 404 if job not found or already terminal.

## Path parameters

- `job_id` string, uuid, required

## Response `200`

Successful Response

- JobResponse: Schema for job information response
  - `job_id` string, required
  - `job_type` 'dummy' | 'datafit' | 'array_datafit' | 'validation' | 'simulate' | 'evaluate_variables' | 'optimize' | 'ecm_fit' | 'simple_pipeline' | 'linear_confidence_interval' | 'sobol_sensitivity' | 'surrogate_train', required: Possible types for a job
  - `status` 'pending' | 'processing' | 'waiting' | 'completed' | 'failed' | 'canceled', required: Possible statuses for a job
  - `priority` integer, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `started_at` string, date-time, nullable
  - `completed_at` string, date-time, nullable
  - `compute_time` number, nullable
  - `error` string, nullable
  - `error_code` 'CONFIGURATION_ERROR' | 'MODEL_ERROR' | 'SOLVER_ERROR' | 'MAX_BACKWARD_JUMPS_EXCEEDED' | 'EXECUTION_TIMEOUT' | 'SUBMISSION_FAILED' | 'INTERNAL_ERROR': Machine-readable error codes for jobs.
  - `error_detail` object, nullable
  - `result` object, nullable
  - `callback_url` string, uri, nullable
  - `parent_job_id` string, nullable
  - `user_id` string, required
  - `organization_id` string, required
  - `project_id` string, nullable
  - `access_level` 'project' | 'organization': Possible access levels for a job
  - `params_path` string, nullable
  - `metadata_path` string, nullable
  - `anyscale_job_id` string, nullable
  - `submission_info` object, nullable
  - `child_key` object, nullable
  - `is_terminal` boolean, required: Whether the job has reached a terminal state and will not transition further. Derived from :attr:`JobStatus.TERMINAL_STATUSES`, so adding a new terminal status to the enum automatically updates the wire field — clients that read ``is_terminal`` never need to know the status taxonomy or be re-released when it changes.
  - `is_failed` boolean, required: Whether the job terminated unsuccessfully (failed or canceled, not completed). Derived from :attr:`is_terminal` minus the success case, so any new non-success terminal status added to :class:`JobStatus` is automatically classified as a failure without touching this method.
  - `anyscale_url` string, nullable, required: Deep-link to this job's Anyscale console dashboard, or None. Built server-side (mirroring the Sentry ``log_url`` pattern) from the captured ``anyscale_job_id`` and the environment's console cloud/project ids. Returns None when the job never ran on Anyscale (local/serve) or the environment has no console ids configured, so the UI simply omits the link in those cases.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-26** `729b8cca71b0`: 1 warning
  - added the new `surrogate_train` enum value to the `job_type` response property for the response status `200`
- **2026-09-30** `ea3d377fec1a`: 1 breaking, 1 warning
  - for the `path` request parameter `job_id`, the format changed from no format to `uuid`
  - added the new `MAX_BACKWARD_JUMPS_EXCEEDED` enum value to the `error_code/anyOf[subschema #1: JobErrorCode]/` response property for the response status `200`
- **2026-09-26** `8ed5440390f0`: 1 info
  - added the optional property `child_key` to the response with the `200` status
- **2026-09-09** `48c041ad4800`: 2 warning
  - added the new `linear_confidence_interval` enum value to the `job_type` response property for the response status `200`
  - added the new `sobol_sensitivity` enum value to the `job_type` response property for the response status `200`

[Operation history](https://skmtc.dev/ionworks/apis/ionworks-api/changes/jobs/:job_id/cancel/post.md)

---

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