query icon indicating copy to clipboard operation
query copied to clipboard

Solid-Query: Error isn't being set when fetching via SSR

Open OrJDev opened this issue 1 year ago • 3 comments

Describe the bug

so having this:

  const link = getContactLink(
    () => ({ id: params.id }),
    () => ({
      deferStream: true,
    })
  );

which basically calls createQuery(...).

this function throws an error, therefore link.data is null so i can't render anything yet, link.error is always null, i can't render the error and i can't render the data (because no data was returned)

if i remove deferStream then the errors gets printed to the console but still, link.error doesn't return anything.

Your minimal, reproducible example

n/a

Steps to reproduce

Create a query function that has deferStream and runs on SolidStart SSR Make it throw an error

Expected behavior

n/a

How often does this bug happen?

None

Screenshots or Videos

No response

Platform

Any OS

Tanstack Query adapter

None

TanStack Query version

tanstack/solid-query 5.60.5

TypeScript version

No response

Additional context

No response

OrJDev avatar Nov 17 '24 00:11 OrJDev

Basically when an error is caught, the entire query freezes its state, no data is being updated, no status is being updated and no error is being set

OrJDev avatar Nov 17 '24 17:11 OrJDev

https://github.com/TanStack/query/blob/main/examples/solid/solid-start-streaming/src/components/query-boundary.tsx

must say, using ErrorBoundary + Suspense + throwOnError works, this issue is when we don't want the error to leak to the boundary but rather get it by using

query.error

OrJDev avatar Nov 17 '24 20:11 OrJDev

Only option seems to be to disable SSR for accessing the error property on query?

nihiluis avatar Feb 15 '25 14:02 nihiluis