Search Docs

Search through documentation...

OpenStatus Logo

Debugging

Type errors right after install

shadcn add finished, but tsc or next build fails inside the files it just wrote, with errors like these:

src/components/data-table/data-table-toolbar.tsx
  Type '{ children: Element[]; delayDuration: number; }' is not assignable to type 'IntrinsicAttributes & Props<unknown>'.
  Property 'delayDuration' does not exist on type 'TooltipProviderProps'.
 
src/components/data-table/data-table-sheet/data-table-sheet-details.tsx
  Property 'render' does not exist on type 'DialogCloseProps'.
 
src/components/data-table/data-table-filter-controls.tsx
  Property 'type' does not exist on type 'AccordionProps'.
 
src/components/data-table/data-table-infinite/hover-card-timestamp.tsx
  Property 'openDelay' does not exist on type 'HoverCardProps'.
 
src/lib/table-schema/generators/columns.tsx
  Type 'boolean | "indeterminate"' is not assignable to type 'boolean | undefined'.

With npm, it can fail one step earlier — shadcn add itself exits during "Installing dependencies":

npm error ERESOLVE could not resolve
npm error While resolving: @base-ui/react@1.8.0
npm error Found: date-fns@3.6.0
npm error Could not resolve dependency:
npm error peerOptional date-fns@"^4.0.0" from @base-ui/react@1.8.0

Cause. The project is on Base UI. Since shadcn v4, npx shadcn@latest init -d defaults to the base-nova preset, which installs Base UI primitives (@base-ui/react). Their props differ from Radix — delay instead of delayDuration, render instead of asChild, no type on Accordion — and the blocks are written against Radix. The data-table block ships no ui/ files of its own, so the CLI resolves tooltip, accordion, dialog, and the rest from whatever library your components.json names. (The npm variant is the same mismatch one layer down: the blocks pin date-fns v3, and @base-ui/react asks for v4 as a peer.) Check components.json: a "style" starting with base- is Base UI.

Fix. Switch the project to Radix, then reinstall the blocks so they pick up the Radix primitives:

npx shadcn@latest init -b radix -p nova --force --reinstall
npx shadcn@latest add https://data-table.openstatus.dev/r/data-table.json https://data-table.openstatus.dev/r/data-table-schema.json --overwrite

The CLI asks once whether to continue — answer y. --reinstall rewrites every file in components/ui/; if you customized any of them, re-apply your changes afterwards. Verified on a broken Base UI project: the switch plus the re-add takes about 20 seconds and leaves tsc and next build green. Starting fresh? Initialize with npx shadcn@latest init -b radix -p nova and the errors never appear — see the Quick Start.

Base UI support is tracked; until it lands, Radix is the prerequisite on every install surface (README, llms.txt, the skill, and the MCP get_install_plan).

Performance

We use react-scan for performance debugging:

# .env.local
NEXT_PUBLIC_REACT_SCAN=true

TanStack Query devtools appear automatically in development. For table debug logs:

NEXT_PUBLIC_TABLE_DEBUG=true

Try the debugging tools on the /infinite demo — it has all three enabled in development.