Livewire v4.4.3 Is Out — Here's Everything That Changed
Released on 31 August 2026, Livewire v4.4.3 is a focused patch release packed with 24 pull requests. It addresses a broad range of bugs, tightens up edge-case behaviour, and ships a bundled upgrade to Alpine.js 3.17.1. If you are running Livewire 4.x in production, this update is worth applying promptly.
Key Fixes
wire:loading Now Restores Attributes and Classes
A long-standing annoyance is resolved: after a wire:loading state ends, Livewire now correctly restores any pre-existing HTML attributes and CSS classes that were present on the element before loading began. Previously those values could be lost after the loading cycle completed.
Uninitialized Form Properties Reset Correctly
Calling reset() on a form object that contained uninitialized properties no longer throws errors or produces unexpected state. The fix ensures the reset path handles properties that were never explicitly set during mount().
URL Properties Preserve Structured Strings
When a component property is bound to the URL via #[Url], structured string values (such as JSON-encoded data or comma-separated lists) are now preserved faithfully instead of being mangled during hydration.
Islands Survive Nested Blade Directives
Livewire islands are now preserved correctly when they appear inside nested Blade directives. Previously, certain directive nesting patterns caused islands to be dropped from the rendered output.
Script Module Suspension
Two related PRs introduce smarter handling of JavaScript ES module scripts:
- Component trees are now suspended until their required script modules have fully loaded, preventing components from initialising against an incomplete JS environment.
- Script modules are prefetched before the page actually needs them, reducing the perceived latency of first interaction.
Model Reuse Across Properties
When multiple Livewire properties resolve to the same Eloquent model, Livewire now reuses the already-resolved model instance instead of querying the database again. This can meaningfully reduce query counts in components with several model-typed properties.
wire:dirty Stays Subscribed
wire:dirty bindings now remain subscribed to every target element they track, fixing cases where dirty indicators stopped responding after a partial DOM update.
Other Notable Changes
$attributesin lazy placeholder views —$attributespassed to a lazy component are now available inside itsplaceholder()view.wire:pollminute durations — You can now specify poll intervals in minutes (e.g.wire:poll.1m) rather than only seconds or milliseconds.wire:intersectcontinuous visibility timing — A new continuous visibility timing option has been added, giving finer control over intersection-triggered behaviour.wire:sort:itemlate-added attributes — Attributes added to sortable items after initial render are now picked up correctly.SupportPageComponentslistener cleanup — The render listener is now properly removed when a component skips rendering or throws an exception, preventing memory leaks in long-running processes.wire:transitionafter Flux toast dismissal — A bug wherewire:transitionwas skipped after a Flux toast auto-dismissed has been resolved.- Redirect responses excluded from returns effect — Redirect responses are no longer incorrectly included in the component's returns effect payload.
- Array-shaped synthesizer guard — Property updates now validate array-shaped synthesizers before processing, preventing type errors on malformed payloads.
- Unnecessary validation data unwrapping removed — An internal optimisation avoids redundant unwrapping of validation data structures.
TypeErrorssurfaced in tests —TypeErrorsthrown during Livewire test runs are now propagated correctly across all supported Laravel versions.- Alpine.js bumped to 3.17.1 — The bundled Alpine version has been updated.
FrontendAssetsreturn types — Public methods onFrontendAssetsnow carry explicit PHP return type declarations.- Component instance shared with island views — The parent component instance is now shared with views rendered during an island render pass.
Quick Takeaways
wire:loadingno longer strips existing attributes/classes from elements.- URL-bound properties now handle structured strings without corruption.
- Script modules are prefetched and components suspend until modules are ready.
- Eloquent model resolution is deduplicated across properties in the same component.
wire:pollnow accepts minute-based intervals.- Alpine.js 3.17.1 is bundled.
TypeErrorsin tests are reliably surfaced across Laravel versions.
Update via Composer:
composer update livewire/livewire
Review the full diff at the official v4.4.3 release page.