Juju 4.0.11¶
🗓️ 2 Jun 2026
This is a cumulative bug fix release for Juju 4.0, covering changes from
4.0.5 to 4.0.11.
🎯 Highlights¶
Security and access checks are tighter: fixes cover dependency vulnerabilities, JAAS bakery authentication, offer permissions, credential access, and Kubernetes-backed user secret creation.
Model migration and CMR are more reliable: Juju now handles remote secrets, external users, relation key ordering, local charms, and relation rejoin behavior more consistently during import and migration.
Storage and Kubernetes lifecycle behavior is safer: storage removal, volume tracking, storage directives, block device provenance, Kubernetes redeployment, and container-machine startup all receive targeted fixes.
Controller and worker stability improves: fixes reduce hangs, panics, goroutine leaks, watcher stalls, and API caller blocking in common controller and agent paths.
Full cumulative list of changes: https://github.com/juju/juju/compare/v4.0.5…20cb167e0dbadab011fcc246d7882220237e5606
🛠️ Fixes¶
🔒 Security, access, and authentication¶
This release tightens user, credential, offer, and secret access paths. It also includes dependency updates for security vulnerabilities in Go networking and streaming libraries.
🔁 Migration, CMR, and relation correctness¶
Several fixes focus on the 3.6 to 4.0 transition path and CMR data
correctness. Remote secrets, local charms, external users, relation key order,
and relation rejoin behavior are handled more reliably.
🗃️ Storage and Kubernetes lifecycle¶
Storage handling is more robust across migration, refresh, removal, Kubernetes stateful workloads, and status output. The fixes reduce the chance of stale storage directives, lost volume context, incorrect provider data, or failed cleanup blocking model operations.
feat: adopting filesystem from storage pool in storage domain service
fix: gracefully handle error when storage backing is not found
fix: return error instead of dropping unmatched storage attachments
fix: k8s redeployment issue with unit starting ordinal change
fix: uninstall lxd-container-provisioner manifold on container machines
🧱 Controller, API, worker, and provisioning stability¶
Controller and agent workers now handle more edge cases without hanging, blocking, leaking goroutines, or panicking. The fixes target API callers, watchers, the async charm downloader, the provisioner, the SSH server, Dqlite listen addresses, and dbaccessor shutdown behavior.
🧭 Operator-facing CLI, status, network, and offer output¶
User-facing output is more accurate and consistent. Fixes include command
output formatting, controller port reporting, relation network data,
network-get, offer listing, application-storage size display, hostname
handling, and stable relation information ordering.
📘 Summary¶
4.0.11 is a broad reliability patch release. It hardens Juju’s access and
authentication behavior, closes security dependency gaps, improves the
migration and CMR path from 3.6 to 4.0, and fixes storage, Kubernetes,
worker, API, and operator-output issues found after 4.0.5.