Roll back Home Assistant with a pre-update recovery point that matches the older Core version; do not assume that launching an old runtime reverses newer persistent-state migrations.
The safest rollback begins before the first repair attempt: preserve the failed post-update state, identify the last known-good version and backup, and decide whether the incompatibility is Core, a custom integration, an add-on, or an external database. A rollback is successful only when the previous runtime can read the restored state and the original household functions pass again. Version change and data rollback are one recovery operation, not two unrelated buttons.
Preserve the Failed State Before Trying to Downgrade
Do not overwrite the only copy of the post-update configuration while experimenting. Save the current configuration, logs, version numbers, database location, and the exact feature that broke. That copy can contain new changes made after the last good backup and evidence needed to understand the incompatibility later.
A 2026 restore regression demonstrated that even an apparently successful backup restore can leave the runtime on the wrong version when the surrounding Supervisor behavior is faulty. The report around backup restore and Core version rollback is a useful reason to verify the actual version after restore instead of trusting the completion message.
Stop making configuration changes until the recovery path is known. If the update broke one optional custom component while the rest of Home Assistant is stable, disabling that component may be safer than a full rollback. If Core cannot start, the database fails to load, or critical automations are unusable, move to the paired runtime-and-state recovery path.
Choose a Recovery Point From Before the Incompatible Release
Identify the last backup taken while the older Home Assistant version was running correctly. Check its timestamp against any important automation, user, dashboard, or history changes you are willing to lose. The recovery point is a trade: it restores compatibility by moving persistent state backward in time.
ZimaSpace's guidance to snapshot app data before an update is the preventive version of the same rule: runtime rollback is cleanest when a known-good state copy exists from before the new software first writes to production data.
If no trustworthy pre-update backup exists, do not manufacture one by copying the already-migrated database and pairing it with an old Core image. Preserve the current state and investigate a forward fix or a controlled rebuild. A rollback without a compatible state copy can turn one incompatible feature into recorder, history, or registry failures.
Restore the Runtime and Persistent State as a Matched Pair
For Home Assistant OS or a managed installation, use the supported restore path that brings back the selected recovery point and verify that the intended Core version actually starts. For Container installations, reverting the image is only half the operation if the newer release has changed persistent data; restore the corresponding pre-update configuration copy as well.
A Home Assistant Core issue about downgrading from 2025.4 to 2025.3 documented Recorder, history, and related integrations failing when the older runtime met a newer database structure. The maintainer response explicitly states that rollback relies on restoring a backup, not on an in-place database downgrade path.
Restore external databases and dependent services to compatible points only when the Home Assistant backup does not own them. Do not blindly roll every container backward. MQTT, proxies, and radios may be healthy and can remain unchanged; focus the rollback on components whose version or state contract actually changed.
Validate the Original Failure Before Re-Enabling Automatic Updates
After rollback, confirm the running Core version, login, Recorder/history, key integrations, automations, dashboards, and one device from every critical protocol. Repeat the action that failed on the incompatible release and verify that it now works without new errors. Then restart Home Assistant and reboot the host once.
Keep the failed-state copy and update notes until the next release or fix has been tested. If a custom integration caused the incompatibility, check its supported versions before the next Core update. If the rollback itself fails, do not alternate versions repeatedly against the same mutable database; return to the clean recovery point or move to a rebuild with selective restoration.
Pass when the old version and restored state remain stable through normal use and reboot, and the original failure is gone. Escalate when the backup cannot restore, the older runtime still cannot read its state, or critical data has no compatible recovery point. At that boundary, a controlled forward fix or rebuild is safer than repeated downgrade attempts.
Support & Tips
More to Read

Can Home Assistant Share a GPU or Accelerator With Another Container?
GPU sharing depends on the workload: containers can often share render nodes, while whole-device VM passthrough usually changes the boundary.

How to Tell Whether a Home Assistant Error Comes From the Client or Server
One-client failures point toward client state; cross-client failures point toward the server or a shared proxy, network, or integration path.

How to Configure Home Assistant Cache and Temporary Storage
Keep Home Assistant persistent state on durable storage; use tmpfs only for paths proven disposable and size it inside the host and container memory...

