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

  1. Regenerate the code at ui.shadcn.com/create and copy it in full.
  2. Ensure the leading version character matches a version your shadcn understands.
  3. 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

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


AI-assisted analysis of shadcn-ui/ui@efac598707 (2026-08-12). Data as JSON: /api/errors/19346185ca35c007. Report an issue: GitHub.