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).
loadRouteLoaderByQrldeletes 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-refetchroutes) — they still assert the opposite (reuse-serialized / no refetch) and must flip to assert refetch.
Source: QwikDev/qwik