Disabled useLiveQuery fails SSR hydration with error 253

Đang mở
#2,322 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

@Jaime02 đang làm issue này rồi.

Từ ngày 31/10/2026.

  • #2323 của @Jaime02 — đang mở

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
42/100
Loại issue
Lỗi
Độ rõ ràng
Đặc tả rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
react, typescript, vite
Lĩnh vực
databases, frontend

Hướng nghiên cứu

Start in LiveQueryObserverClient.getServerSnapshot, which calls _waitForSsrLiveQuery for a disabled query's hash even though no collection exists. Then read DbClient._setSsrStreamingEnabled, where error 253 is thrown when the stream ends early. Reproduce with the DisabledQueryRoute in examples/react/start-ssr-e2e using vite build and vite preview. Done when a disabled query hydrates with status 'disabled' and the error event no longer carries error 253.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

  • I've validated the bug against the latest version of DB packages (main at 15d2d2d32)

Describe the bug
In a routerWithDbClient app, hydration fails when a live query is disabled, meaning its query callback returns undefined:

TanStack DB error 253 (The DB stream ended before the server-rendered query snapshot arrived.)
    at DbClient._setSsrStreamingEnabled

React reports a hydration error (#422) and falls back to client rendering for the boundary. This happens in both dev and production builds.

Cause
A disabled query has no collection, so the server never captures or streams a record for it. LiveQueryObserverClient.getServerSnapshot still calls _waitForSsrLiveQuery(queryHash, true) for its hash. While the DB stream is open, the hydration read suspends. When the stream ends, it throws 253.

To Reproduce
In examples/react/start-ssr-e2e, add a route:

function DisabledQueryRoute() {
  const [id] = React.useState<string | undefined>(undefined)
  const { status } = useLiveQuery({
    query: (q) => (id === undefined ? undefined : q.from({ todo: ssrTodoCollection })),
  })
  return <span>{status}</span>
}

Load the route with vite build && vite preview or with vite dev. The error event's cause chain contains error 253.

Expected behavior
A disabled query hydrates as status: 'disabled'. It should not wait for a record that the server never sends.

Additional context
Versions: @tanstack/db / @tanstack/react-db 1.0.0-rc.1.1, @tanstack/react-router-with-db 1.0.0-rc.1, React 19, Chromium.

Ngôn ngữ chính
TypeScript
Star
4k
Fork
277
Merge trung bình
1 ngày 7 giờ
Pull request đã merge (30 ngày)
191

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của TanStack/db

Tất cả issue của TanStack/db

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.