{"record":{"id":"04d3f0b301962aa2","repo":"TanStack/table","slug":"feature-not-supported-in-current-reactivity-implem-04d3f0","errorCode":null,"errorMessage":"Feature not supported in current reactivity implementation","messagePattern":"Feature not supported in current reactivity implementation","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/svelte-table/src/reactivity.svelte.ts","lineNumber":65,"sourceCode":"    }) as Atom<T>['subscribe'],\n  }\n}\n\n/**\n * Creates the table-core reactivity bindings used by the Svelte adapter.\n *\n * Table state atoms are backed by TanStack Store atoms. The options store stays\n * framework-native because row-model APIs read `table.options` directly during\n * render. Readonly table atoms bridge Store dependency tracking into\n * `$derived.by`, so their `.get()` methods participate in Svelte dependency\n * tracking when called in templates, `$derived`, or `$effect`.\n */\nexport function svelteReactivity(): TableReactivityBindings {\n  return {\n    createOptionsStore: true,\n    wrapExternalAtoms: false,\n    addSubscription: () => {\n      throw new Error(\n        'Feature not supported in current reactivity implementation',\n      )\n    },\n    unmount: () => {\n      throw new Error(\n        'Feature not supported in current reactivity implementation',\n      )\n    },\n    schedule: (fn) => queueMicrotask(() => fn()),\n    createReadonlyAtom: <T>(fn: () => T, _options?: TableAtomOptions<T>) => {\n      const storeAtom = createAtom(() => fn(), {\n        compare: _options?.compare,\n      })\n      let version = $state(0)\n\n      $effect(() => {\n        const subscription = storeAtom.subscribe(() => {\n          version += 1","sourceCodeStart":47,"sourceCodeEnd":83,"githubUrl":"https://github.com/TanStack/table/blob/d01c01bedbab0ff6c2641f18b2fc9a11545d9bf6/packages/svelte-table/src/reactivity.svelte.ts#L47-L83","documentation":"svelteReactivity() in packages/svelte-table returns a TableReactivityBindings object whose addSubscription method unconditionally throws. This reactivity implementation does not support external subscriptions; callers that request one hit this guard. It exists so unsupported binding APIs fail loudly instead of silently misbehaving.","triggerScenarios":"Calling any table code path that invokes bindings.addSubscription(...) while using the Svelte reactivity bindings (svelteReactivity), e.g. a feature or atom consumer that registers a manual subscription against the table's reactivity layer.","commonSituations":"Using a table feature or integration written for the store-based reactivity (storeReactivityBindings) on the Svelte implementation; mixing reactivity adapters; library authors calling addSubscription directly.","solutions":["Do not call addSubscription with the Svelte bindings; use the atoms/schedule APIs svelteReactivity provides instead.","If you need subscriptions, use a reactivity implementation that supports them (e.g. storeReactivityBindings) or implement a custom TableReactivityBindings with a working addSubscription.","Check the feature/integration you enabled to see why it registers subscriptions and disable or adapt it."],"exampleFix":"// before\nbindings.addSubscription(() => value)\n// after\n// subscribe via Svelte reactivity instead\n$effect(() => {\n  console.log(atom.get())\n})","handlingStrategy":"validation","validationCode":"const bindings = svelteReactivity()\nif (bindings.addSubscription === undefined) throw new Error('subscriptions unsupported')\n// or check a documented capability flag before using subscription APIs","typeGuard":"function supportsSubscriptions(b: TableReactivityBindings): boolean {\n  return typeof b.addSubscription === 'function' && !isThrowingStub(b.addSubscription)\n}","tryCatchPattern":"try {\n  bindings.addSubscription(cb)\n} catch (e) {\n  if ((e as Error).message.includes('Feature not supported')) {\n    // fall back to atom/effect-based tracking\n  } else throw e\n}","preventionTips":["Read the adapter's TableReactivityBindings surface before writing feature code against it","Prefer atom reads/effects over manual subscriptions in Svelte","Test features against every reactivity adapter you ship"],"tags":["reactivity","svelte","unsupported-operation"],"backgroundTag":"reactivity-binding-unsupported","analyzedSha":"d01c01bedbab0ff6c2641f18b2fc9a11545d9bf6","analyzedAt":"2026-08-28T21:52:44.679Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}