From 6af9a1df56a924f036f04cf7c729d35db915e9fa Mon Sep 17 00:00:00 2001 From: Erik Rahm Date: Sun, 8 Feb 2026 08:43:33 -0800 Subject: [PATCH 1/2] fix(solid-query): strip promise field in hydratableObserverResult to prevent SSR stream hang The promise field from QueryObserver.getOptimisticResult() is a controlled Promise that may never resolve (e.g. when enabled: false). When included in the value returned from createResource's fetcher, Solid's SSR serialization waits for it indefinitely, causing the streaming response to never close. This follows the same pattern as the existing refetch: undefined stripping. --- packages/solid-query/src/useBaseQuery.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/solid-query/src/useBaseQuery.ts b/packages/solid-query/src/useBaseQuery.ts index 773d0719e0..aee85a5124 100644 --- a/packages/solid-query/src/useBaseQuery.ts +++ b/packages/solid-query/src/useBaseQuery.ts @@ -76,9 +76,10 @@ const hydratableObserverResult = < if (!isServer) return result const obj: any = { ...unwrap(result), - // During SSR, functions cannot be serialized, so we need to remove them - // This is safe because we will add these functions back when the query is hydrated + // During SSR, non-serializable values (functions, promises) must be removed. + // This is safe because they will be reconstructed when the query is hydrated. refetch: undefined, + promise: undefined, } // If the query is an infinite query, we need to remove additional properties From 6b3f3820a6e4dd8095dc2d0e0fe4e5fa5188f962 Mon Sep 17 00:00:00 2001 From: Erik Rahm Date: Sun, 8 Feb 2026 08:59:57 -0800 Subject: [PATCH 2/2] chore: add changeset for solid-query SSR promise fix --- .changeset/curly-places-train.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/curly-places-train.md diff --git a/.changeset/curly-places-train.md b/.changeset/curly-places-train.md new file mode 100644 index 0000000000..44e91eef62 --- /dev/null +++ b/.changeset/curly-places-train.md @@ -0,0 +1,5 @@ +--- +'@tanstack/solid-query': patch +--- + +fix(solid-query): prevent SSR stream hang caused by unstripped promise field