QwikDev / QwikDev/qwik

router: settle ErrorBoundary reset → loader revalidation semantics (Phase B)

Open
#8,911 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?

  • Feature / enhancement

Description

#8745 ruled that reset() on an <ErrorBoundary> should re-invoke the loaders feeding the errored subtree — the v2 error design counts on it, since a redacted server failure in .error can only be retried by refetching. Today the behavior happens to refetch, but the semantics were never settled.

Phase B scope:

  • Define reset → revalidation semantics (which loaders re-run, dedupe across boundaries).
  • loadRouteLoaderByQrl deletes rejected promises from the promises map, so a naive re-trigger double-executes the loader.
  • Rewrite the two parked pins in e2e/qwik-e2e/tests/error-handling.e2e.ts (test.fixme, loader-data-throw / loader-reset-no-refetch routes) — they still assert the opposite (reuse-serialized / no refetch) and must flip to assert refetch.

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 loadRouteLoaderByQrl and the loader promise map to understand current reset and rejected-promise behavior. Then inspect the two parked tests in e2e/qwik-e2e/tests/error-handling.e2e.ts, including the loader-data-throw and loader-reset-no-refetch routes. Done means the reset-to-revalidation semantics are settled and the tests assert the intended refetch behavior without duplicate loader execution.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.