TanStack/table · error
Feature not supported in current reactivity implementation
Error message
Feature not supported in current reactivity implementation
What it means
storeReactivityBindings in packages/table-core/src/store-reactivity-bindings.ts creates store-based bindings where createOptionsStore is true but addSubscription still throws. Subscriptions are not part of the supported surface even in the store implementation; any caller registering a subscription hits this guard.
Source
Thrown at packages/table-core/src/store-reactivity-bindings.ts:24
* with `createOptionsStore: true` so `table.optionsStore` is available for subscriptions.
*
* @example
* ```ts
* import { constructTable, tableFeatures } from '@tanstack/table-core'
* import { storeReactivityBindings } from '@tanstack/table-core/store-reactivity-bindings'
*
* const table = constructTable({
* features: tableFeatures({ coreReactivityFeature: storeReactivityBindings() }),
* // ...
* })
* ```
*/
export function storeReactivityBindings(): TableReactivityBindings {
return {
createOptionsStore: true,
wrapExternalAtoms: false,
addSubscription: () => {
throw new Error(
'Feature not supported in current reactivity implementation',
)
},
unmount: () => {
throw new Error(
'Feature not supported in current reactivity implementation',
)
},
batch,
schedule: (fn) => queueMicrotask(fn),
untrack: (fn) => fn(),
createReadonlyAtom: (fn, options) => {
return createAtom(() => fn(), {
compare: options?.compare,
})
},
createWritableAtom: (value, options) => {
return createAtom(value, {View on GitHub (pinned to d01c01bedb)
Solutions
- Use the atoms / store API (createOptionsStore is true) instead of manual subscriptions.
- Replace subscription needs with store.subscribe or framework store mechanisms outside the bindings layer.
- Provide a custom TableReactivityBindings whose addSubscription is implemented if you genuinely need it.
Example fix
// before
bindings.addSubscription((fn) => store.subscribe(fn))
// after
const unsub = store.subscribe((value) => { /* react */ })
// later: unsub() Defensive patterns
Strategy: validation
Validate before calling
const bindings = storeReactivityBindings()
if (bindings.addSubscription === undefined || isThrowingStub(bindings.addSubscription)) {
// use store.subscribe instead of addSubscription
} Type guard
function addSubscriptionSupported(b: TableReactivityBindings): boolean {
return !isThrowingStub(b.addSubscription)
} Try / catch
try {
bindings.addSubscription(cb)
} catch (e) {
if ((e as Error).message.includes('Feature not supported')) {
const unsub = store.subscribe(cb) // supported alternative
} else throw e
} Prevention
- Use the store API (store.subscribe) rather than bindings.addSubscription
- Keep feature code within the documented bindings surface
- Check bindings capability before integrating external observables
When it happens
Trigger: Calling bindings.addSubscription(...) on bindings from storeReactivityBindings (store-reactivity-bindings.ts:24) — invoked via features, initTableWorker, testFeatures, or createTable consumers.
Common situations: Custom feature code modeled after external-subscription patterns (e.g. observable integrations); tests calling addSubscription directly; copy-pasted adapter code from other reactive libraries.
Related errors
- Feature not supported in current reactivity implementation
- Feature not supported in current reactivity implementation
- Feature not supported in current reactivity implementation
AI-assisted analysis of TanStack/table@d01c01bedb (2026-08-28).
Data as JSON: /api/errors/70bc77f23cabc595.
Report an issue: GitHub.