---
title: "Cancel an update that is waiting for the harness's sessions to be idle"
method: POST
path: "/api/v1/agents/{agent}/install/cancel"
tags: ["agents"]
---

# Cancel an update that is waiting for the harness's sessions to be idle

`POST /api/v1/agents/{agent}/install/cancel`

## Request

- Base URL: `http://127.0.0.1:3001`
- URL: `http://127.0.0.1:3001/api/v1/agents/{agent}/install/cancel`
- Auth: none declared

## Path parameters

- `agent` string, required: Agent adapter identifier.

## Response `200`

OK

- InstallJob
  - `command` string: Human-readable install command, e.g. "brew install tmux", for display even before/without output.
  - `error` string: Set on failure or when the target is unsupported on this machine: the exec error, the Unsupported reason, or a timeout message.
  - `expectedDestination` string: Expected or adapter-resolved executable destination.
  - `finishedAt` string, date-time, nullable: Absent until the job finishes.
  - `method` string: Server-owned installation method selected for this harness job.
  - `notice` string: Fixed user-visible consequence to acknowledge before running this install.
  - `output` string: Combined stdout+stderr from the install command, tail-capped to the last ~4000 bytes.
  - `startedAt` string, date-time, nullable
  - `status` 'idle' | 'running' | 'waiting_for_idle' | 'installing' | 'verifying' | 'succeeded' | 'failed' | 'unsupported' | 'interrupted', required: Current lifecycle state of the job. waiting_for_idle: the update runs once every session using the harness is idle (Windows).
  - `target` 'tmux' | 'gh' | 'claude' | 'claude-code' | 'codex' | 'cursor' | 'opencode' | 'opencode-v2' | 'aider' | 'copilot' | 'grok' | 'kimi' | 'pi' | 'amp' | 'auggie' | 'droid' | 'crush' | 'cline' | 'goose' | 'qwen' | 'gemini' | 'continue' | 'devin' | 'kiro' | 'kilocode' | 'vibe' | 'muse' | 'agy' | 'autohand' | 'kimchi' | 'prime-agent' | 'omp' | 'fx' | 'unreal-agent' | 'codewhale' | 'mimo-code' | 'deepseek-harness' | 'openhands' | 'command-code' | 'memcode' | 'hermes' | 'cloudflared', required: Fixed install target this job ran (or is running) for.
  - `updatedAt` string, date-time, nullable
  - `waitingOn` SessionWait[]: While waiting_for_idle, the sessions the update still waits for and why.
    - `reason` 'working' | 'command' | 'approval' | 'starting' | 'reviewer' | 'resume', required
    - `sessionId` string, required

## Other responses

- `400`: Bad Request
- `409`: Conflict
- `500`: Internal Server Error
- `501`: Not Implemented

## Changes

- **2026-10-22** `8dd454f77e02`: 1 warning
  - added the new `hermes` enum value to the `target` response property for the response status `200`
- **2026-10-21** `8f160e6183cd`: 4 info
  - removed the `agent_switch_saga` enum value from the `reporting_owner` response property for the response status `400`
  - removed the `agent_switch_saga` enum value from the `reporting_owner` response property for the response status `409`
  - removed the `agent_switch_saga` enum value from the `reporting_owner` response property for the response status `500`
  - removed the `agent_switch_saga` enum value from the `reporting_owner` response property for the response status `501`
- **2026-10-19** `f6d1ae4671f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/changes/api/v1/agents/:agent/install/cancel/post.md)

---

[API](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon.md) - [All operations](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/llms.txt) - [OpenAPI document](https://skmtc.dev/composiohq/apis/agent-orchestrator-http-daemon/revisions/61d7efd08578?raw)
