# Vue 3.5.42 fixes async hydration, Suspense, and v-model edge cases

> Vue 3.5.42 is a maintenance release focused on async hydration teardown, pending Suspense branches, select synchronization, and SSR input safety.

Canonical URL: https://www.devobs.io/news/news-vue-3-5-42-hydration-runtime-fixes/
By: Amara Okafor
Published: 2026-09-06T11:58:54.649Z
Updated: 2026-09-06T11:58:54.649Z
Event date: 2026-08-27
Section: Developer tools

Vue released version 3.5.42 on August 27 with fixes across hydration, Suspense, `v-model`, server rendering, and style binding. The immutable [version changelog](https://github.com/vuejs/core/blob/v3.5.42/CHANGELOG.md) records a maintenance release aimed at lifecycle edges rather than new public APIs.

## Several fixes concern work that finishes late

Async components can unmount before lazy hydration completes, and unresolved async fragments can move while work is pending. Vue 3.5.42 corrects both cases. It also avoids caching unmounted Suspense children and changes how a leaving branch is classified while its replacement is still mounting.

These failures tend to appear under timing pressure: a user navigates away, a condition changes, or a slow import resolves after the owning tree has changed. A happy-path render test may never exercise them. Applications with route-level code splitting, delayed components, or transitions around Suspense should add explicit teardown and race cases.

The release also re-synchronizes a select when its model is overridden inside a change handler, preserves the result of combining `.trim` and `.number` modifiers, and supports `!important` on CSS custom properties in style bindings. On the server, it rejects carriage returns in attribute names.

## Reproduce the old race before removing workarounds

A focused upgrade test can mount a lazy component, change its parent branch before resolution, then resolve the import and assert that no detached content or stale effects remain. For Suspense, combine a pending branch with an outro transition and rapid navigation. For forms, change a select model synchronously inside its handler and verify both DOM selection and reactive state.

Patch releases should be low-friction, but applications that carry timing workarounds may observe behavior changes when the underlying bug disappears. Remove those workarounds only after the fixed case passes across client rendering and hydration. Update Vue packages together, run SSR output checks, and keep the test that captured the race so a future scheduler or hydration refactor cannot silently restore it.

## Source references

- <https://github.com/vuejs/core/blob/v3.5.42/CHANGELOG.md>
