shadcn-ui/ui · error
Invalid preset code: ${code}
Error message
Invalid preset code: ${code} What it means
decodePresetCode calls decodePreset, which bit-unpacks the base62 preset string with a version-prefix character. If the code is malformed — bad version prefix, wrong length, checksum mismatch, non-base62 characters — decodePreset returns null and decodePresetCode throws.
Source
Thrown at packages/shadcn/src/commands/preset.ts:43
}
type PresetDecodeResult = {
code: string
version: string
values: PresetValues
derived: string[]
url: string
}
export function getPresetUrl(code: string) {
return `${SHADCN_URL}/create?preset=${code}`
}
export function decodePresetCode(code: string): PresetDecodeResult {
const decoded = decodePreset(code)
if (!decoded) {
throw new Error(`Invalid preset code: ${code}`)
}
const derived: string[] = []
const chartColor = (decoded.chartColor ??
V1_CHART_COLOR_MAP[decoded.theme] ??
decoded.theme) as PresetValues["chartColor"]
if (!decoded.chartColor) {
derived.push("chartColor")
}
return {
code,
version: code[0],
values: {
...decoded,
chartColor,
},View on GitHub (pinned to efac598707)
Solutions
- Regenerate the code at ui.shadcn.com/create and copy it in full.
- Ensure the leading version character matches a version your shadcn understands.
- Pass the code exactly as produced by `shadcn preset encode`.
Defensive patterns
Strategy: type-guard
Validate before calling
import { isPresetCode, decodePreset } from "@/preset/preset"
function assertDecodablePreset(code: string) {
if (!isPresetCode(code) || decodePreset(code) == null) {
throw new Error(`Not a valid preset code: ${code}`)
}
} Type guard
import { decodePreset } from "@/preset/preset"
function isDecodablePresetCode(code: string): boolean {
try {
return decodePreset(code) != null
} catch {
return false
}
} Try / catch
try {
const result = decodePresetCode(code)
} catch (e) {
if (e instanceof Error && /Invalid preset code/.test(e.message)) {
// Prompt the user to regenerate the code from ui.shadcn.com/create.
}
throw e
} Prevention
- Validate with isPresetCode before calling decodePresetCode.
- Copy codes from a trusted source; avoid manual transcription.
When it happens
Trigger: Calling `shadcn preset decode <code>` (or the decodePresetCode API) with a string that is not a valid shadcn preset code for the installed version.
Common situations: Truncated code from copy-paste, wrong/unknown version-prefix character (code[0]), code produced by an incompatible shadcn version, manual typo, URL-decoded fragment that lost characters.
Related errors
- Invalid base: ${String(resolvedBase)}. Expected one of: ${PR
- Unknown preset: ${presetArg}
- Base color "${baseColorName}" or theme "${themeName}" not fo
- Unknown item: "${designSystemConfig.item}".
- Font "${designSystemConfig.font}" not found
AI-assisted analysis of shadcn-ui/ui@efac598707 (2026-08-12).
Data as JSON: /api/errors/19346185ca35c007.
Report an issue: GitHub.