#8911·qwik

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

Author: maiieulCreated Aug 4, 2026Updated Aug 4, 2026

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.