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
{{ message }}
Repository navigation
Hydration re-asks an async memo the server answered with an error, when only isPending of a dependent is read #4375
Found by the async app generator's hydration phase (#4371). Reproduces on next5f60713. This breaks the no-refetch-on-hydration rule: a read the server answered, with a value or an error, is never asked again by a hydrating client.
const[s]=createSignal(1);functionApp(){// rejects on the server: 1 + latest(s) + s() = 3constm0=createMemo(()=>fetchM0(1+latest(s)+s()));constm1=createMemo(()=>fetchM1(1+m0()));return(<main><Erroredfallback={e=>"[ROOT-E]"}><Loadingfallback="[ROOT-L]"><span>{String(isPending(m1))}</span></Loading></Errored></main>);}
The server streams m0's rejection (_$HY.r["0"] settles with Error("m0:3")) together with the Loading fragment <span>false</span>. When the client hydrates the shell and that chunk then arrives, it calls fetchM0(3) again for real, outside hydration's dry run. No client write happened before that call.
The generator's minimizer kept the latest(s) dependency: with m0 over s() alone, the case doesn't fail. The page only reads isPending(m1), so no Errored ever sees the error.
Activity
chore(size): re-record the #4375 hydrating scenarios over next @ 40cde2c
fix(solid): a served rejection re-serves in its claim window's round (#…
ryansolid commentedon Oct 28, 2026
Fixed on
nextby #4385 (bd95616); it ships in the next RC.Generated by Claude Code
test(web): #4375 hydration pins the asks over latest(s) under R5's ad…
fix(signals): a first load in flight stays loading through an identit…
fix(signals): latest() read inline and through a memo show the same s…
fix(signals): latest() opens no transaction for its verdict; its read…
test(web): #4375 hydration pin asks of the truth — no display-ahead m…
feat(signals): a question is asked only of the truth — F-2's producer…
fix(signals): a pass that asks reads ahead on the screen as a sync pa…