{"record":{"id":"17064d7e965b8a30","repo":"TanStack/table","slug":"feature-not-supported-in-current-reactivity-implem","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/alpine-table/src/reactivity.ts","lineNumber":18,"sourceCode":"import { batch, createAtom } from '@tanstack/store'\nimport type {\n  TableAtomOptions,\n  TableReactivityBindings,\n} from '@tanstack/table-core/reactivity'\n\n/**\n * Creates the table-core reactivity bindings used by the Alpine adapter.\n *\n * Alpine uses TanStack Store atoms directly. Table instance reads\n * are then exposed to Alpine through the proxy wrapper in `createTable`.\n */\nexport function alpineReactivity(): 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    batch,\n    untrack: (fn) => fn(),\n    createReadonlyAtom: <T>(fn: () => T, options?: TableAtomOptions<T>) => {\n      return createAtom(() => fn(), {\n        compare: options?.compare,\n      })\n    },\n    createWritableAtom: <T>(value: T, options?: TableAtomOptions<T>) => {\n      return createAtom(value, {","sourceCodeStart":1,"sourceCodeEnd":36,"githubUrl":"https://github.com/TanStack/table/blob/d01c01bedbab0ff6c2641f18b2fc9a11545d9bf6/packages/alpine-table/src/reactivity.ts#L1-L36","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before\nconst bindings = alpineReactivity();\nbindings.addSubscription(fn); // throws\n// after\nconst bindings = alpineReactivity();\nif (typeof bindings.addSubscription === 'function' && !isAlpineUnsupported(bindings)) {\n  bindings.addSubscription(fn);\n} else {\n  bindings.schedule(fn); // supported alternative\n}","handlingStrategy":"validation","validationCode":"const bindings = alpineReactivity();\nif (!bindings.addSubscription || isAlpineUnsupported(bindings)) {\n  // skip subscription path; use schedule/batch instead\n}","typeGuard":"function supportsSubscriptions(b) {\n  return typeof b.addSubscription === 'function' && !b.addSubscription.toString().includes('not supported');\n}","tryCatchPattern":"try {\n  bindings.addSubscription(fn);\n} catch (e) {\n  if (e.message.includes('Feature not supported')) {\n    bindings.schedule(fn); // fallback\n  } else { throw e; }\n}","preventionTips":["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"],"tags":["alpine","reactivity","unsupported-feature"],"backgroundTag":"unsupported-reactivity-feature","analyzedSha":"d01c01bedbab0ff6c2641f18b2fc9a11545d9bf6","analyzedAt":"2026-08-28T21:52:44.679Z","schemaVersion":2},"datasetVersion":"2026-08-29T02:17:18.158Z"}