Skip to content

fix(qwik-router): ErrorBoundary catches its own subtree (closest-parent)#8744

Open
maiieul wants to merge 2 commits into
QwikDev:build/v2from
maiieul:v2-errorboundary-closest-parent
Open

fix(qwik-router): ErrorBoundary catches its own subtree (closest-parent)#8744
maiieul wants to merge 2 commits into
QwikDev:build/v2from
maiieul:v2-errorboundary-closest-parent

Conversation

@maiieul

@maiieul maiieul commented Jun 17, 2026

Copy link
Copy Markdown
Member

The container now routes async errors (qerror) to the nearest ErrorBoundary via handleError, like synchronous render throws already do. Drops the global qerror broadcast where every boundary caught every error.

BREAKING CHANGE: no longer reacts to every error on the page.

What is it?

  • Feature / enhancement
  • Bug
  • Docs / tests / types / typos
  • Infra

Description

Checklist

  • My code follows the developer guidelines of this project
  • I performed a self-review of my own code
  • I added a changeset with pnpm change
  • I made corresponding changes to the Qwik docs
  • I added new tests to cover the fix / functionality

The container now routes async errors (qerror) to the nearest ErrorBoundary
via handleError, like synchronous render throws already do. Drops the global
qerror broadcast where every boundary caught every error.

BREAKING CHANGE: <ErrorBoundary> no longer reacts to every error on the page.
@maiieul maiieul requested a review from a team as a code owner June 17, 2026 18:54
@changeset-bot

changeset-bot Bot commented Jun 17, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 075d8fd

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 5 packages
Name Type
@qwik.dev/core Major
@qwik.dev/router Major
eslint-plugin-qwik Major
@qwik.dev/react Major
create-qwik Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@maiieul maiieul self-assigned this Jun 17, 2026
@maiieul maiieul moved this to Waiting For Review in Qwik Development Jun 17, 2026
@pkg-pr-new

pkg-pr-new Bot commented Jun 17, 2026

Copy link
Copy Markdown

Open in StackBlitz

@qwik.dev/core

npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/core@8744

@qwik.dev/router

npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/router@8744

eslint-plugin-qwik

npm i https://pkg.pr.new/QwikDev/qwik/eslint-plugin-qwik@8744

create-qwik

npm i https://pkg.pr.new/QwikDev/qwik/create-qwik@8744

@qwik.dev/optimizer

npm i https://pkg.pr.new/QwikDev/qwik/@qwik.dev/optimizer@8744

commit: 075d8fd

@github-actions

github-actions Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor
built with Refined Cloudflare Pages Action

⚡ Cloudflare Pages Deployment

Name Status Preview Last Commit
qwik-docs ✅ Ready (View Log) Visit Preview 075d8fd

A component throwing during SSR render is now routed to the closest
ErrorBoundary (matching the client) and its fallback is rendered in place,
instead of aborting to the error page. Only boundaries that expose a
fallback (`<ErrorBoundary fallback$>` sets `store.$fallback$`) are caught —
SSR can't re-render the boundary — so boundaries without one keep
propagating, unchanged.
@maiieul maiieul requested review from a team as code owners June 17, 2026 20:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Waiting For Review

Development

Successfully merging this pull request may close these issues.

1 participant