# Downgrade Coolify

Source: https://next.coolify.io/docs/core/instance-management/downgrade

Downgrading Coolify replaces the version of the self-hosted Coolify control plane. It does not roll back your applications, databases, services, managed servers, or their data.

> **Warn: Self-hosted instances only**
>
> The Coolify team manages instance versions for Coolify Cloud. You must wait for the Coolify team to downgrade the instance if the latest version causes a serious issue. If you are experiencing any issues with Coolify, [contact the Coolify team](https://next.coolify.io/docs/support).

You have to use the terminal to downgrade Coolify. The dashboard and automatic updates only install newer releases.

## Before you downgrade

* [Create an instance backup](https://next.coolify.io/docs/core/backup-and-recovery/instance-backup).
* Review the [release notes](https://github.com/coollabsio/coolify/releases) for the current and target versions.
* Choose a maintenance window: the dashboard will be unavailable while Coolify restarts, but your apps keep running.
* Check for active deployments and let them finish before continuing.

> **Danger: Plan for recovery**
>
> An older Coolify release may not work with database changes made by a newer release.
>
> Changing the version does not restore the earlier database state. If the downgrade breaks your Coolify instance, restore the known-good instance backup instead of downgrading through multiple older releases.

## Perform the downgrade

### Disable automatic updates

Prevent Coolify from returning to the newest release after the downgrade.

Open **Settings** in the left sidebar, then select **Updates**.

![Settings and Updates navigation, with the Automatic updates control visible](https://next.coolify.io/docs/images/core/instance-management/downgrade/updates-settings-overview.webp)

Under **Automatic updates**, choose **Disabled**. This setting saves immediately.

![Automatic updates selector in Updates settings, currently set to Enabled](https://next.coolify.io/docs/images/core/instance-management/downgrade/updates-automatic-updates.webp)

If you cannot change **Automatic updates**, check whether `/data/coolify/source/.env` contains the `AUTOUPDATE` environment variable. If it does, set it to `false`.

The upgrade script saves a timestamped backup of `.env` before changing it. Save your own copy of `/data/coolify/source/.env` before downgrading in case anything goes wrong.

### Install the target version

Connect to the Coolify server over SSH:

```sh
ssh root@<server-ip>
```

Replace `<server-ip>` with your server's IP address. If you normally sign in with a non-root account, run `sudo -i` first to open a root shell.

Run the upgrade script with the exact target version:

```sh
curl -fsSL https://cdn.coollabs.io/coolify/upgrade.sh | bash -s 4.3.21
```

Replace `4.3.21` with the version from the release you selected.

The upgrade script downloads the Coolify configuration files, pulls the target Coolify image, then restarts the Coolify containers in the background. Wait for the restart confirmation before closing the SSH session.

### Verify the downgrade

After the upgrade script completes, wait for the dashboard to be available again, then confirm:

* the dashboard opens and shows the expected Coolify version
* you can see your projects and resources
* managed servers still connect

The upgrade script writes a timestamped log such as `/data/coolify/source/upgrade-2026-07-11-12-00-00.log`. Review the newest `upgrade-*.log` file if the dashboard is still unavailable or a container fails to start.

## Troubleshooting

**Coolify upgrades again after the downgrade**

Return to **Settings > Updates** and confirm **Automatic updates** is set to **Disabled**.

If the control is unavailable because `AUTOUPDATE` is set in `/data/coolify/source/.env`, change it to `AUTOUPDATE=false` and rerun the target-version command.

**The Coolify dashboard stays unavailable**

Review the newest `/data/coolify/source/upgrade-*.log` file first.

Check that the `coolify`, `coolify-db`, and `coolify-redis` containers are running and healthy. Then make sure your firewall still allows access to the dashboard.

Releases before the [Reverb migration](https://next.coolify.io/docs/core/instance-management/reverb-migration) also start a `coolify-realtime` container. A downgrade to one of those releases brings that container back, and ports `6001` and `6002` move to it again.

**The target version does not work with the existing data**

Stop here if the target version cannot use the existing database or the dashboard remains unavailable. Do not keep downgrading to older releases.

Use the backup created before the change and follow [Restore a Coolify instance](https://next.coolify.io/docs/core/backup-and-recovery/instance-restore).

Restore uses the backup database together with the matching `.env` file so Coolify retains the encryption key required to read encrypted values.
