Juju 4.0.3ΒΆ

πŸ—“οΈ 4 Mar 2026

🎯 Highlights¢

  • 4.0.3 is the cumulative patch release from 4.0.1 to 4.0.3: 4.0.2 was not promoted, so this release carries the full stability and migration work from both patch versions.

  • Model migration coverage expands significantly: Juju model config, machines, subnets, filesystems, volumes, and storage attachments imports have all been reworked.

  • CMR reliability improves end-to-end: importing remote consumers/offerers, relation units, and duplicate remote applications is now safer and more consistent.

  • Storage and object-store behavior is more robust under load: fixes target retries, leaked readers, spin-lock behavior, and deletion safety for de-duplicated blobs.

  • Lifecycle and operator UX is tightened up: better removal ordering and foreign key (FK) cleanup, clearer action error output, and more accurate offer visibility.

⚠️ Breaking changes¢

N/A.

πŸš€ Features (key changes)ΒΆ

N/A. This is a patch release focused on migration completeness, reliability, and operational correctness rather than new top-level product features.

Key changes include:

Full cumulative list of changes: https://github.com/juju/juju/compare/v4.0.1…v4.0.3

πŸ› οΈ FixesΒΆ

πŸ” Migration/CMR correctnessΒΆ

πŸ—ƒοΈ Object store, resources, and firewaller stabilityΒΆ

🧱 Lifecycle, offers, and cloud lifecycle safety¢

πŸ“˜ SummaryΒΆ

4.0.3 is a reliability-focused release: it finishes major chunks of the 3.6β†’4.0 migration path, hardens CMR and storage/object-store behavior in real workloads, and improves day-2 operator visibility and lifecycle safety across offers, actions, and cloud cleanup workflows.