# CPalius CMF 2.2.9

**Released:** 2026-09-24 · **Channel:** stable · **Critical:** yes

Turkish: [2.2.9-tr.md](2.2.9-tr.md)

Applying a full-release update looked like a single "Update now" click but actually needed two: the first click replaced files, moved the schema and rebuilt the cache; update hooks, module upgrades and configuration import were left pending until a second, separate click on "Run update". A site serving traffic between those two clicks could run new code against a database that had not caught up, and 500.

## What's fixed

**Applying an update now finishes the job in one click.** The two-request split itself is still there on purpose — running the rest of the update through the same request that just replaced the files means running it through a container that describes the old code, and that is what took a site down in 1.1.2. What changed: the moment the first request lands on a fresh container, it now auto-submits the exact same "Run update" action an operator would otherwise have had to notice and click by hand. One click from the operator's side; the safety boundary that keeps a stale container out of the picture is unchanged.

**Two Symfony deprecation warnings, gone.** `Route::getName()` (superseded by the `name` property) was firing on every admin menu registration; the legacy Flysystem `adapter`/`options` config format is replaced with the current per-adapter key. Neither affected behavior, both were flooding the update log with noise.

## Upgrade notes

Nothing manual. After this version lands, clicking "Update now" for any future release completes without a second click.
