You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Regressed in 2.0.0-beta.36 (works in 2.0.0-beta.35). @qwik.dev/core + @qwik.dev/router2.0.0-beta.36, @qwik.dev/optimizer2.1.0-beta.5, Vite 8.0.16, Node 22, dev SSR mode (vite --mode ssr).
Describe the bug
A client-side data grid filters its rows reactively from a debounced search signal. The chain:
<input onInput$> → localSearch (signal) → a useTask$ that setTimeout-writes debouncedSearch (signal) → a useComputed$ that filters/sorts/paginates props.rows by debouncedSearch.value → rendered through a row virtualizer.
On beta.35 this filters correctly. On beta.36, typing a query re-renders the table body as blank rows — the row <tr> structure stays (~same count) but cell content is gone, the filter is not applied (no reduction in row count, no empty-state), and the controlled <input value={localSearch.value}> snaps back to empty. No console error or exception is thrown.
Diagnosis / narrowing (in case it helps)
The same debouncedSearch signal also drives a server-mode code path (a separate useTask$ that calls nav()); that path still works on beta.36 — so signal propagation to a useTask$ is intact.
Converting the filtering useComputed$ into a plain signal written by a sole-writer useTask$ (tracking all inputs explicitly) did not fix it — so the row-data computation isn't the failing link.
The "structure stays, cells go blank" symptom points at the cell-render / virtualization layer re-rendering against the updated search signal, rather than at the filtering logic.
I don't yet have a minimal StackBlitz — this surfaced in a large app and I haven't isolated the exact primitive. I'm happy to build a minimal reproduction (client list + debounced useTask$ search + useComputed$ filter + virtualization) if a maintainer confirms that would help. Flagging now in case the symptom + narrowing already rings a bell against the beta.36 scheduler work.
Expected
Updating the debounced search signal re-renders the virtualized list with the filtered rows (or an empty-state), as on beta.35.
Which component is affected?
Qwik Runtime (
@qwik.dev/core)Version
Regressed in
2.0.0-beta.36(works in2.0.0-beta.35).@qwik.dev/core+@qwik.dev/router2.0.0-beta.36,@qwik.dev/optimizer2.1.0-beta.5, Vite 8.0.16, Node 22, dev SSR mode (vite --mode ssr).Describe the bug
A client-side data grid filters its rows reactively from a debounced search signal. The chain:
<input onInput$> → localSearch (signal)→ auseTask$thatsetTimeout-writesdebouncedSearch (signal)→ auseComputed$that filters/sorts/paginatesprops.rowsbydebouncedSearch.value→ rendered through a row virtualizer.On beta.35 this filters correctly. On beta.36, typing a query re-renders the table body as blank rows — the row
<tr>structure stays (~same count) but cell content is gone, the filter is not applied (no reduction in row count, no empty-state), and the controlled<input value={localSearch.value}>snaps back to empty. No console error or exception is thrown.Diagnosis / narrowing (in case it helps)
debouncedSearchsignal also drives a server-mode code path (a separateuseTask$that callsnav()); that path still works on beta.36 — so signal propagation to auseTask$is intact.useComputed$into a plain signal written by a sole-writeruseTask$(tracking all inputs explicitly) did not fix it — so the row-data computation isn't the failing link.Reproduction
I don't yet have a minimal StackBlitz — this surfaced in a large app and I haven't isolated the exact primitive. I'm happy to build a minimal reproduction (client list + debounced
useTask$search +useComputed$filter + virtualization) if a maintainer confirms that would help. Flagging now in case the symptom + narrowing already rings a bell against the beta.36 scheduler work.Expected
Updating the debounced search signal re-renders the virtualized list with the filtered rows (or an empty-state), as on beta.35.