QwikDev / QwikDev/qwik

core: failed handler-chunk import reaches the boundary after resume, bypassing the importError skip

Open
#8,962 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
22.1k
Forks
1.4k
Avg merge
1d 10h
Merged PRs (30d)
52

Description

What is it?

  • Bug

Description

The client qerror listener deliberately skips importError events so a failed chunk import never routes to an <ErrorBoundary> (error-handling.ts — chunk 404s are a version-skew problem, #8795). After the Vite 8 / rolldown merge on #8745, a resumed container dispatches handlers through core (_qDispatch / run-qrl) instead of the qwikloader import path, so a failed handler-chunk fetch now lands in the nearest boundary as a plain error and the fallback renders the raw browser message (Failed to fetch dynamically imported module: …). No qerror event fires at all.

Two channels now disagree: the loader path still skips import errors, the core dispatch path catches them. Decide which behavior is intended (skip everywhere per #8795, or boundary-catches everywhere — possibly as NetworkError, #8882) and align both paths.

The e2e pin (error-handling.e2e.ts — "a failed qwikloader dynamic import (chunk 404) leaves the boundary inert") is parked on this issue.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with error-handling.ts and trace the resumed-container dispatch through _qDispatch and run-qrl, comparing it with the qwikloader import path. Review the parked case in error-handling.e2e.ts and the context from #8795 and #8882; done means the intended import-error behavior is consistent across both paths and the failed chunk test passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vite
Domain
frontend, testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.