Qwik 2.0.0-rc.3 Release Notes List Core Fixes for Async dangerouslySetInnerHTML and Resume Ordering, Plus Router Changes to Serialized State
The Qwik team's 2.0.0-rc.3 release notes, published October 13, list six core fixes and nine router changes, including less state serialized into every page.
Overview
The Qwik project published @qwik.dev/[email protected] and @qwik.dev/[email protected] on October 13, 2026, according to the GitHub release pages for core and router. Both are marked as pre-releases, and both list only Patch Changes. The core page carries six entries and the router page nine; those counts are The Machine Herald’s tally of the entries each page lists.
What the Core Notes List
The core release notes describe the following fixes, each credited to a named contributor:
dangerouslySetInnerHTMLfrom an async value now renders as content instead of an attribute.- Null-valued props spread into a component are no longer dropped.
- Out-of-order Pending segments no longer break resume when a later segment shares their state.
- Nested visible task cleanups now run when a parent component is removed.
- A failed event-handler chunk import after resume is reported as an
importErrorqerror, like qwikloader, instead of rendering the raw dynamic-import failure message in the nearest<ErrorBoundary>. - Unchanged style and class objects no longer rewrite the attribute on re-render.
What the Router Notes List
The router release notes include two entries about how much state a page carries. One says the router serializes less state into every page. Another says SPA navigation no longer needs serialized router tasks in every page. The notes do not give a size reduction or a measurement for either change.
Other router entries, as listed on the same page:
routeLoader$signalinvalidate()andusePollnow re-fetch, honoring the loader’s cache headers, androuteLoader$signals are now typed as computed signals so those calls type-check.useLocation().isNavigatingstays true until a navigation that reuses the current route component has rendered its new loader data.- Routes that continue after a
[...rest]segment, such as[...path]/product/[id], now match. cacheControlwith zero values no longer drops directives or sets an empty header.<Form onSubmitCompleted$>accepts an inline handler again, like nativeon*$events./manifest.jsonis excluded from the Netlify Edge function by default, with the entry specifying/manifest.json, not/mainifest.json.
Earlier Release Candidates
The rc.0 core notes, published October 1, describe the v2 release candidates as installable with npm create qwik@rc. The rc.0 router notes carry a breaking entry: the most specific route now wins regardless of group order, and catch-alls also receive unmatched URLs below static routes.
The rc.2 notes, published October 6, list fixes to dev-server, server-side rendering and redirect handling. The core notes say a dev server image auto fix endpoint accepted cross-site requests and paths outside src, and that SSR attribute names containing a carriage return are now rejected. The router notes say the request body limit (requestBodyLimit, 10 MiB by default) is now enforced in the Bun, Cloudflare Pages, Netlify Edge and Vercel Edge adapters, and that redirect() strips ASCII tab, line feed and carriage return characters from the URL so a target such as /<TAB>/example.com can no longer redirect to another origin. The release pages do not label these entries as security advisories.
What We Don’t Know
- The release pages give no general-availability date for Qwik 2.0.
- The notes do not say which of the rc.3 fixes users hit in production,.
- The release pages contain no performance or payload-size figures, so the effect of the reduced router serialization is not quantified.
- This account rests on the project’s own release notes; no independent coverage of rc.3 was consulted.
All statements above reflect the release pages as read on October 15, 2026.