Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Console flooded with "Function object could not be cloned" with multiple persisted tabs

クローズ
#1,498 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
静か
技術スタック
react, sqlite, typescript

調査の方向性

再現用リポジトリから始め、ブラウザバンドルのスタックに表示される sendRPCOnce と requestEnsureRemoteSubset の呼び出しを追跡します。オンデマンドのクエリコレクションと永続化された SQLite コレクションを使用して2つのタブで問題を再現します。2つのタブが同期されたまま、2番目のタブがコンソールに cloning 警告を大量に出力しなくなれば完了です。

索引モデルが issue の本文から書いたものです。

説明

  • I've validated the bug against the latest version of DB packages

Describe the bug
When using an on-demand query collection with a persisted sqlite collection in the browser, if you open two tabs it will flood the client's console with the message (in the tab that was opened the latest):

Failed to ensure remote subset: DOMException: Function object could not be cloned.
    sendRPCOnce @tanstack_browser-db-sqlite-persistence.js:2723
    sendRPCOnce @tanstack_browser-db-sqlite-persistence.js:2704
    sendRPC @tanstack_browser-db-sqlite-persistence.js:2696
    requestEnsureRemoteSubset @tanstack_browser-db-sqlite-persistence.js:2517
    flushPendingRemoteSubsetEnsures @tanstack_browser-db-sqlite-persistence.js:776
    queueRemoteSubsetEnsure @tanstack_browser-db-sqlite-persistence.js:759
    hydrateSubsetUnsafe @tanstack_browser-db-sqlite-persistence.js:475
    loadSubset @tanstack_browser-db-sqlite-persistence.js:338
    taskPromise @tanstack_browser-db-sqlite-persistence.js:141
    promise callback*run @tanstack_browser-db-sqlite-persistence.js:141
    loadSubset @tanstack_browser-db-sqlite-persistence.js:338
    loadSubset @tanstack_browser-db-sqlite-persistence.js:1169
    loadSubset @tanstack_react-db.js:5083
    requestSnapshot @tanstack_react-db.js:4305
    subscribeChanges @tanstack_react-db.js:4537
    subscribeChanges @tanstack_react-db.js:6929
    subscribeToMatchingChanges @tanstack_react-db.js:11034
    subscribeToChanges @tanstack_react-db.js:11006
    subscribe @tanstack_react-db.js:10982
    loaders @tanstack_react-db.js:11633
    subscribeToAllCollections @tanstack_react-db.js:11621
    syncFn @tanstack_react-db.js:11415
    startSync @tanstack_react-db.js:4869
    CollectionImpl @tanstack_react-db.js:6624
    createCollection @tanstack_react-db.js:6545
    bridgeToCreateCollection @tanstack_react-db.js:12019
    createLiveQueryCollection @tanstack_react-db.js:12015
    useLiveQuery @tanstack_react-db.js:13189
    RouteComponent index.tsx:76
    react_stack_bottom_frame react-dom_client.js:12868
    renderWithHooks react-dom_client.js:4213
    updateFunctionComponent react-dom_client.js:5569
    beginWork react-dom_client.js:6140
    runWithFiberInDEV react-dom_client.js:851
    performUnitOfWork react-dom_client.js:8429
    workLoopSync react-dom_client.js:8325
    renderRootSync react-dom_client.js:8309
    performWorkOnRoot react-dom_client.js:7957
    performSyncWorkOnRoot react-dom_client.js:9067
    flushSyncWorkAcrossRoots_impl react-dom_client.js:8984
    flushPassiveEffects react-dom_client.js:8816
    commitRoot react-dom_client.js:8562
    performWorkUntilDeadline react-dom_client.js:36
    require_scheduler_development react-dom_client.js:141
    require_scheduler_development react-dom_client.js:244
    __commonJSMin chunk-CYJPkc-J.js:8
    require_scheduler react-dom_client.js:249
    __commonJSMin chunk-CYJPkc-J.js:8
    require_react_dom_client_development react-dom_client.js:11672
    require_react_dom_client_development react-dom_client.js:14375
    __commonJSMin chunk-CYJPkc-J.js:8
    require_client react-dom_client.js:14380
    __commonJSMin chunk-CYJPkc-J.js:8
    <anonymous> react-dom_client.js:14383

To Reproduce
Steps to reproduce the behavior:

  1. git clone [email protected]:c-kirkeby/tanstack-db-failed-to-ensure-remote-subset.git
  2. Go to localhost:3000
  3. Open a second tab and open the dev tools in both
  4. The second tab will continuously receive this warning.

Expected behavior
I'm not too sure how this should be handled in a multi-tab context. Presumably some kind of reconciliation would need to happen to ensure that they are synchronised and this warning doesn't happen. Claude's explanation seems to be that existence of the where clause in the predicate is what's causing the issue.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: Bazzite 43 (kernel 6.17.7-ba29.fc43.x86_64 (64-bit))
  • Browser: Zen 1.19.10b (Firefox 150.0) (64-bit)
  • Version: 0.6.5
主要言語
TypeScript
スター
3.9k
フォーク
272
平均マージ
1日 45分
マージ済み PR(30日)
208

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

TanStack/db のほかの issue

TanStack/db の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。