TanStack/table · error
Feature not supported in current reactivity implementation
Error message
Feature not supported in current reactivity implementation
What it means
alpineReactivity() returns a TableReactivityBindings object describing what the Alpine table's reactivity implementation supports. Its addSubscription capability is intentionally unimplemented, so calling it always throws this error to signal the feature is unavailable in the current (Alpine) reactivity implementation.
Source
Thrown at packages/alpine-table/src/reactivity.ts:18
import { batch, createAtom } from '@tanstack/store'
import type {
TableAtomOptions,
TableReactivityBindings,
} from '@tanstack/table-core/reactivity'
/**
* Creates the table-core reactivity bindings used by the Alpine adapter.
*
* Alpine uses TanStack Store atoms directly. Table instance reads
* are then exposed to Alpine through the proxy wrapper in `createTable`.
*/
export function alpineReactivity(): 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',
)
},
schedule: (fn) => queueMicrotask(() => fn()),
batch,
untrack: (fn) => fn(),
createReadonlyAtom: <T>(fn: () => T, options?: TableAtomOptions<T>) => {
return createAtom(() => fn(), {
compare: options?.compare,
})
},
createWritableAtom: <T>(value: T, options?: TableAtomOptions<T>) => {
return createAtom(value, {View on GitHub (pinned to d01c01bedb)
Solutions
- Do not call addSubscription with the Alpine reactivity bindings; guard feature use by checking the bindings flags (createOptionsStore: true, wrapExternalAtoms: false) before subscribing
- Use the adapter's supported reactivity APIs (schedule, batch, untrack, createOptionsStore) instead of subscriptions
- If subscription support is required, switch to a table adapter/package whose reactivity implementation supports it, or file/upvote a feature request
Example fix
// before
const bindings = alpineReactivity();
bindings.addSubscription(fn); // throws
// after
const bindings = alpineReactivity();
if (typeof bindings.addSubscription === 'function' && !isAlpineUnsupported(bindings)) {
bindings.addSubscription(fn);
} else {
bindings.schedule(fn); // supported alternative
} Defensive patterns
Strategy: validation
Validate before calling
const bindings = alpineReactivity();
if (!bindings.addSubscription || isAlpineUnsupported(bindings)) {
// skip subscription path; use schedule/batch instead
} Type guard
function supportsSubscriptions(b) {
return typeof b.addSubscription === 'function' && !b.addSubscription.toString().includes('not supported');
} Try / catch
try {
bindings.addSubscription(fn);
} catch (e) {
if (e.message.includes('Feature not supported')) {
bindings.schedule(fn); // fallback
} else { throw e; }
} Prevention
- Check the bindings capability flags before using lifecycle/subscription hooks
- Write adapter-agnostic setup code that degrades gracefully per capability
- Consult the Alpine adapter docs for supported reactivity APIs before integrating subscriptions
When it happens
Trigger: Any code path that calls the bindings returned by alpineReactivity() — specifically the addSubscription function (reactivity.ts:18) — is invoked, e.g. when mergedOptions wires up external store subscriptions.
Common situations: Developers enabling reactive option stores or external atom/subscription integration with the Alpine table adapter; calling table reactivity APIs that assume a Pinia/Solid-like subscription system that Alpine does not provide.
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/17064d7e965b8a30.
Report an issue: GitHub.