fix(solid-query): strip promise field in hydratableObserverResult to … #10104
+8
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎯 Changes
hydratableObserverResult()stripsrefetch,fetchNextPage, andfetchPreviousPageduring SSR, but doesn't strip thepromisefield fromQueryObserverResult.The
promisefield (fromQueryObserver.getOptimisticResult()) is a controlled Promise that may never resolve — for example whenenabled: false. When included in the value returned fromcreateResource's fetcher, Solid's SSR serialization waits for it indefinitely, causing the streaming response to never close (browser tab spinner spins forever).Fix: Add
promise: undefinedalongside the existingrefetch: undefined.Reproduction
useQuerywithenabled: false:document.readyStatestays 'loading' and the browser tabspinner spins forever
Any query that doesn't immediately fetch is affected, not just enabled: false. This includes queries where the server sets
enabled: !isServeras a global default.✅ Checklist
guide.
pnpm run test:pr.🚀 Release Impact
changeset.