---
title: "Cancel an in-progress cluster upgrade"
method: POST
path: "/clusters/{cluster_id}/upgrades/cancel"
tags: ["Cluster Operations"]
---

# Cancel an in-progress cluster upgrade

`POST /clusters/{cluster_id}/upgrades/cancel`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/clusters/{cluster_id}/upgrades/cancel`
- Auth: API key in header `API-Key`

Required scope: `clusters:write`

## Path parameters

- `cluster_id` string, uuid, required

## Headers

- `API-Version` '2026-06-01.beta', required

## Response `200`

The request has succeeded.

- ClusterUpgradeCancellation: Response returned after a cancel-upgrade request is accepted.
  - `cluster` Cluster, required: A Keycloak cluster managed by Skycloak.
    - `id` string, uuid, required
    - `name` string, required
    - `type` 'keycloak' | 'tidecloak', required
    - `size` 'small' | 'medium' | 'large', required
    - `version` string, required: Cluster version in semver format. Check the documentation for the latest supported versions.
    - `location` 'us' | 'us-west' | 'ca' | 'au' | 'eu', required: Region where the cluster is hosted.
    - `status` 'provisioning' | 'available' | 'updating' | 'degraded' | 'maintenance' | 'stopped' | 'failed' | 'deleting', required
    - `management_mode` 'full', required: Skycloak manages the full lifecycle of the cluster. Every cluster is fully managed.
    - `url` string, uri, required: Keycloak instance URL. Only non-empty once the cluster reaches `available` status.
    - `sso_enabled` boolean, required: Whether admin console SSO integration is enabled for this cluster.
    - `auto_upgrade_enabled` boolean: Whether automatic patch upgrades are enabled for this cluster.
    - `http_relative_path` string, required: Path prefix Keycloak is served from (e.g. `/auth`). Empty string means `/`.
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `features` string[], required: Keycloak feature flags explicitly enabled on this cluster.
    - `features_disabled` string[], required: Keycloak feature flags explicitly disabled on this cluster.

## Other responses

- `401`: Access is unauthorized.
- `404`: The server cannot find the requested resource.
- `409`: The request conflicts with the current state of the server.
- `429`: Client error
- `500`: Server error
- `501`: Server error

---

[API](https://skmtc.dev/skycloak/apis/skycloak-public-api.md) · [All operations](https://skmtc.dev/skycloak/apis/skycloak-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skycloak/apis/skycloak-public-api/revisions/33a69e2ce35f?raw)
