Fix shadcn combobox: item was not found at the registry
Why the combobox is the one component the CLI cannot find in an older shadcn project, reproduced with shadcn 4.22.1, and the one-line change for each Tailwind version.
TL;DR#
npx shadcn@latest add combobox builds the registry URL from the style field of your
components.json. The combobox was only published for the Tailwind v4 styles (new-york-v4 and newer styles such
as radix-nova and base-nova). A project whose components.json still says "style": "new-york"
with a tailwind.config path, or "style": "default", asks for a file that does not exist and gets a
404. If the project really runs Tailwind v4 with "style": "new-york", set "config": "" under
tailwind (the shadcn docs say to leave it blank on v4) and the CLI switches to new-york-v4 by
itself. That remap does not exist for "style": "default": a v4 project on default still gets the
404 with a blank config, so rename the style to new-york-v4 or install by URL. If the project is
still on Tailwind v3, whatever its style, install the component from its full URL and adapt it.
The report is shadcn-ui/ui issue #9400, opened on
21 January 2026 and still open, with dozens of "+1" comments from Next.js, Vite, Tauri and monorepo
projects. The output below was reproduced on 21 October 2026 with shadcn 4.22.1 on Node 22 in the
official node:22-alpine Docker image, with a components.json that says "style": "new-york" and
"config": "tailwind.config.js":
$ npx -y shadcn@4.22.1 add combobox --dry-run --yes
Something went wrong. Please check the error below for more details.
If the problem persists, please open an issue on GitHub.
Message:
The item at https://ui.shadcn.com/r/styles/new-york/combobox.json was not found. It may not exist at the registry.
Suggestion:
Check if the item name is correct and the registry URL is accessible.
You can also try a previous version to see if that works:
npx shadcn@4.21.0 add combobox --dry-run --yes
[exit code: 1]The "try a previous version" hint is a red herring here: the CLI is fine, the file it asks for is
missing from the registry. The message itself comes from RegistryNotFoundError in
packages/registry/src/registry/errors.ts,
the error class the registry client builds for an item that answers with HTTP 404.
Why the CLI asks for a style that has no combobox#
Each component is a JSON file on ui.shadcn.com under /r/styles/, in one folder per style. The
style comes from components.json, after one remap in
packages/registry/src/registry/config.ts
(identical at the shadcn@4.22.1 tag and on main):
function resolveStyleFromConfig(config: DeepPartial<Config>) {
if (!config.style) {
return FALLBACK_STYLE
}
// Check if we should use new-york-v4 for Tailwind v4.
// We assume that if tailwind.config is empty, we're using Tailwind v4.
if (config.style === "new-york" && config.tailwind?.config === "") {
return FALLBACK_STYLE
}
return config.style
}FALLBACK_STYLE is "new-york-v4"
(constants.ts).
So the CLI treats a project as Tailwind v4 only when style is new-york and tailwind.config is an
empty string. A project initialised on Tailwind v3 has a config path there. If you upgraded it to
Tailwind v4 later and nobody cleared that field, the CLI still requests the v3 new-york files.
For most components that goes unnoticed, because the v3 styles still publish them. The combobox is
different. On 10 February 2026 the maintainer
wrote in the issue: "The
combobox is only Tailwind v4. I did not create it for v3." On 23 February he
added that it "is not
available in the default style (default is Tailwind v3 only and was deprecated)". He also said
he would add a v3 version. Eight months later, the live registry still has none:
https://ui.shadcn.com/r/styles/new-york-v4/combobox.json 200
https://ui.shadcn.com/r/styles/new-york/combobox.json 404
https://ui.shadcn.com/r/styles/default/combobox.json 404
https://ui.shadcn.com/r/styles/radix-nova/combobox.json 200
https://ui.shadcn.com/r/styles/base-nova/combobox.json 200The same missing file explains a variant reported in the thread:
shadcn add --all --dry-run stops on the combobox
when the style is default, with the same 404 on /styles/default/combobox.json, because "all"
includes it.
Which fix fits your project#
The right change depends on two things: the style in components.json and the Tailwind version
the project actually runs. A wrong components.json value only hides a mismatch. Read the style
first, then check the Tailwind version:
npm ls tailwindcss
grep -rn "tailwindcss" src/app/globals.css src/index.css 2>/dev/nullA tailwindcss@4.x entry plus a stylesheet that starts with @import "tailwindcss"; means Tailwind
v4. Three @tailwind base/components/utilities lines and a tailwind.config.* that Tailwind really
loads mean v3. shadcn's own init makes a similar check (the tailwindcss entry in package.json and the
Tailwind line in your CSS), described in
the "No Tailwind CSS configuration found" fix.
Then pick the branch:
- Tailwind v4,
"style": "new-york": empty thetailwind.configfield (next section). - Tailwind v4,
"style": "default": emptying the field is not enough. In the reproduction,defaultwith"config": ""still returned the 404 above for/styles/default/combobox.json. Rename the style tonew-york-v4(the maintainer's route, below) or install by URL. - Tailwind v3, any style: install by URL and adapt the file (last fix section).
Fix on Tailwind v4 with the new-york style: empty the tailwind.config field#
-
Open
components.jsonand clear theconfigvalue undertailwind. Keep the key and set it to an empty string. Thecomponents.jsondocumentation says of this field: "For Tailwind CSS v4, leave this blank."json{ "$schema": "https://ui.shadcn.com/schema.json", "style": "new-york", "tailwind": { "config": "", "css": "src/app/globals.css", "baseColor": "neutral", "cssVariables": true, "prefix": "" } } -
Run the command again, with
--dry-runfirst so nothing is written yet:bashnpx shadcn@latest add combobox --dry-run
With "style": "new-york", that one change is enough. In the reproduction, the same project with
only "config": "" changed resolved the item:
$ npx -y shadcn@4.22.1 add combobox --dry-run --yes
- Resolving items.
┌ shadcn add combobox (dry run)
│
├ Files (5) +5 new
│ + src/components/ui/button.tsx create
│ + src/components/ui/input.tsx create
│ + src/components/ui/textarea.tsx create
│ + src/components/ui/input-group.tsx create
│ + src/components/ui/combobox.tsx createThe other route, and the only components.json fix for a v4 project on default, is the one the
maintainer
posted on 13 March 2026, is
to rename the style: "Rename to style: new-york-v4 then run npx shadcn add combobox again." In
the reproduction this also resolves the item, even with tailwind.config.js still set. Be aware
that the docs say the opposite about this field: the components.json page states that the style
"cannot be changed after initialization". Both routes make every later add pull the v4 files, not
just the combobox. That is what you want on a Tailwind v4 project and the wrong thing on a v3 one.
Fix on Tailwind v3: add the v4 file by URL#
On a Tailwind v3 project, neither edit to components.json is safe. It would switch all future
components to v4 markup. Instead, pass the registry URL directly, as the maintainer
suggested:
npx shadcn@latest add https://ui.shadcn.com/r/styles/new-york-v4/combobox.jsonWith the unchanged "style": "new-york" and "config": "tailwind.config.js" project, the URL form
resolves:
$ npx -y shadcn@4.22.1 add https://ui.shadcn.com/r/styles/new-york-v4/combobox.json --dry-run --yes
- Resolving items.
┌ shadcn add https://ui.shadcn.com/r/styles/new-york-v4/combobox.json (dry run)
│
├ Files (5) +5 new
│ + src/components/ui/button.tsx create
│ + src/components/ui/input.tsx create
│ + src/components/ui/textarea.tsx create
│ + src/components/ui/input-group.tsx create
│ + src/components/ui/combobox.tsx create
│
├ Dependencies (3)
│ + @radix-ui/react-slot
│ + cn
│ + @base-ui/reactThe dependency list differs from the v4 route, which listed radix-ui instead of
@radix-ui/react-slot. The supporting button, input and input-group files can therefore come
out differently in a v3 project. Read the dry run before you apply it, and use --diff on any file
you already have. For the default style, the maintainer's advice is the same: install the
new-york-v4 version "and adjust it". The classes are written for Tailwind v4, so expect manual work
on anything v4-specific. If you are about to move the project to v4 anyway, note that v4
moved its PostCSS plugin to a separate package, and an old PostCSS config then fails the build with
the "using tailwindcss directly as a PostCSS plugin" error.
Verify the fix#
Run the dry run until it prints the file list instead of Message:, then install for real:
npx shadcn@latest add comboboxIn the reproduction, the real install on the "config": "" project created the five files and added
three packages to package.json:
✔ Created 5 files:
- src/components/ui/button.tsx
- src/components/ui/input.tsx
- src/components/ui/textarea.tsx
- src/components/ui/input-group.tsx
- src/components/ui/combobox.tsx "@base-ui/react": "^1.9.0",
"cn": "^0.5.0",
"radix-ui": "^1.8.1",One email a month — the latest explained errors
What the site published that month — mostly Next.js, Supabase and Node errors, explained. You confirm by email; unsubscribe any time in one click.
The Radix project that ends up with Base UI#
Several commenters in the issue assumed the combobox would install on Radix, because the documentation lists it under the Radix components. It does not. The maintainer confirmed that it is "built base-ui primitives". The installed file starts with:
4:import { Combobox as ComboboxPrimitive } from "@base-ui/react"
5:import { cn } from "cn"The manual tab of the
Radix combobox documentation page gives the
same instruction, npm install @base-ui/react. A Radix project therefore carries both libraries once
the combobox is in. That is expected, not a broken install. The second import pulls the cn
package, which the npm registry lists as shadcn's own class-merging helper (repository
shadcn-ui/cn). It does not use the cn from your lib/utils. Keep both, or change the import
to your alias if you prefer one helper.
Monorepos (Turborepo, pnpm workspaces) hit the same 404 for the same reason. shadcn add --help
describes --cwd as "the working directory", defaulting to the current one, so check the
components.json of the package you run the command in, not only the one at the repository root.
If the combobox installs but the project then fails to build with
Cannot apply unknown utility class border-border, the project is on Tailwind v4 while its
stylesheet still follows the v3 shadcn setup. That is a separate fix, covered in
the border-border guide. The combobox
404 itself always comes down to the same cause. The registry only publishes the component for the
Tailwind v4 styles, so components.json has to point the CLI at one of them, or you name the file
by URL.
Frequently Asked Questions
Still stuck? Paste your error.
Paste the error message or stack trace — we check it against every fix and tool on the site.
Continue Reading
Fix shadcn "No Tailwind CSS configuration found" in Vite
What shadcn init actually looks for before it says Tailwind is missing, reproduced on Tailwind 3 and 4 with the one line that fixes each.
Fix "Cannot apply unknown utility class border-border"
Reproduced on Tailwind 4.1.4 to 4.3.3 and 3.4.19: the four wordings of this error, the @config path that resolves, the hsl() trap in @theme, and the two v3 causes.
Tailwindcss not working with Next.js: fix the config
A Next.js build that finishes clean but ships a page with zero Tailwind styling almost always has one wrong setting: the paths Tailwind scans for class names.


