Skip to content

Diagnostic Codes

Every csszyx message starts with [csszyx] <code>:. Match on the code, never on the wording.

Every code has a page at https://csszyx.com/e/<code>. A level can be set in csszyx.config for a code the build or csszyx checkreports, and for each pass of csszyx check.

Passes of csszyx check

IdWhat it reports
sz-diagnosticEvery diagnostic the engine reports while it lowers sz.
dead-classEmitted classes this project's Tailwind generates no CSS for.
broken-opacityOpacity modifiers on a colour whose theme value color-mix() cannot dim.
sibling-keywordValues that emit a class setting another property than their key sets.
theme-collisionTheme tokens whose name a built-in utility also uses.
merge-covered-keysz keys the build removed because a later key in the same object covers them.
merge-covered-classclassName classes the build removed because an sz class on the element covers them.

Codes

CodeWhat it reportsWhereLevel
unknown-keyA key no sz table knows, likely a typo.engine, runtimesettable
canonical-keyAn alias of a key, with the canonical spelling to write.engine, runtimesettable
removed-keyA key that was removed or replaced, with what to write instead.engine, runtimesettable
numeric-keyA numeric key, the mark of an array or spread passed as an sz object.engine, runtimesettable
closed-enum-valueA value a closed-enum key does not take.engine, runtimesettable
slash-opacity-stringA colour key given its opacity in a string, which emits nothing; the object form takes it.engine, runtimesettable
off-scale-valueA spacing value off Tailwind's quarter-step scale.engine, runtimesettable
numeric-font-weightA font weight written as a numeric string.engine, runtimesettable
per-side-border-styleA border style on one side, which Tailwind cannot express.engine, runtimesettable
property-objectAn object on a key that names a property, not a variant.engine, runtimesettable
non-variant-objectAn object on a csszyx-owned key that is not a variant.engine, runtimesettable
unknown-fieldA field a structured value (a mask layer) does not take.engine, runtimesettable
runtime-valueA runtime value on a key with no CSS-variable utility.enginesettable
unresolvable-spreadA spread in an sz object the build cannot resolve.enginesettable
style-overrideA props spread that may override the style sz emits.enginesettable
szs-slot-mapAn szs slot map the build cannot read, or one on a host element.enginesettable
sz-recoverAn szRecover value the build cannot read.enginesettable
class-precedenceA runtime className beside sz, which sz overrides.enginesettable
duplicate-szAn element with more than one sz attribute, merged in order.enginesettable
spread-split-classClass names and sz on more than one side of a spread.enginesettable
moved-valueA value that moved to another key, with the key to write.engine, runtimesettable
global-before-groupA stand-alone keyword written before a group key that replaces it.engine, runtimesettable
runtime-family-conflictA runtime value beside the other side of its key family.enginesettable
fallback-missing-cssA runtime fallback whose classes were never collected.enginesettable
fallback-nudgeA runtime fallback whose classes were still collected.enginesettable
merge-classifier-unavailableA merge table this engine cannot read, so nothing merged.enginesettable
parse-errorA file the parser rejected, which contributes no classes.engine, runtime, errorsettable
nesting-depthA file nested deeper than the parser guard allows.enginesettable
unsupported-dynamic-szAn sz attribute whose value the engine cannot read.enginesettable
ast-budgetA file over the AST budget, left unchanged.engine, runtimesettable
mangle-vars-hoist-skippedA CSS variable mangleVars could not hoist to a component.enginesettable
color-slash-opacityA colour object with a slash opacity in `color`; the object takes it in `op`.engine, runtimesettable
unsigned-valueA negative value on a key Tailwind serves no negative utility for.check, runtimesettable
dead-classAn emitted class this project's Tailwind generates no CSS for.check, runtimesettable
prefix-disagreementTailwind entries in one project that set different prefixes.check, errorsettable
sibling-keywordA value that emits a class setting another property than its key sets.checksettable
broken-opacityAn opacity modifier on a colour whose theme value color-mix() cannot dim.check, runtimesettable
unserved-variantA bare variant name Tailwind serves no variant for, on a utility it serves.check, runtimesettable
theme-collisionA theme token whose name a built-in utility also uses.check, runtimesettable
merge-covered-keyAn sz key the build removed because a later key in the same object covers it.check, runtimesettable
merge-covered-classA className class the build removed because an sz class on the element covers it.check, runtimesettable
recovery-manifest-unreadableA recovery manifest that is not valid JSON or not in the recovery format.runtime, error—
mangle-map-unreadableA mangle map on the page that is not a plain map of class names, so it is ignored.runtime—
mangle-census-unreadableA mangle census on the page that is not a valid map, so nothing was verified.runtime—
mangle-checksum-mismatchA mangle map whose hash differs from the checksum it was built with.runtime—
mangle-map-unavailableA page with a mangle checksum but no census or map to recompute it from.runtime—
web-crypto-unavailableA page without Web Crypto, so the mangle checksum cannot be recomputed.runtime, error—
hydration-abortedA hydration check that threw on an element and stopped.runtime—
csr-recovery-unmarkedA hydration mismatch on an element without an szRecover directive.runtime—
csr-recovery-dev-onlyAn szRecover="dev-only" element in a production build, where its recovery is off.runtime—
csr-recovery-usedA hydration mismatch the runtime recovered by rendering on the client.runtime—
merge-table-format-skewA merge table in a format this runtime does not read, so szcn merges nothing.runtime—
merge-table-missingA run with no merge table, so szcn removes only exact repeats.runtime—
uncompiled-szA raw sz object that reached the runtime because its file was not compiled.runtime—
register-szcn-groups-ignoredA registerSzcnGroups call, which no longer changes what szcn merges.runtime—
theme-token-ambiguousA theme token defined under two namespaces that share one class prefix.runtime—
split-box-selector-invalidA has/pick/omit selector that can never match a token.runtime—
split-box-unknown-categoryA selector name that is no category or class prefix csszyx knows.runtime—
split-box-placement-variantA splitBox placement written with a variant or marker, which never matches.runtime—
split-box-peer-on-frameA peer class splitBox kept on the frame although its base belongs inside.runtime—
split-box-unclassifiedA class or raw CSS splitBox cannot classify, placed on the fallback node.runtime—
split-box-unbounded-scrollA scrolling content node whose height nothing bounds, so it grows instead.runtime—
split-box-unclipped-cornersA rounded frame that does not clip its scrolling content.runtime—
split-box-hidden-contentA hiding class placed on the content node, which leaves the frame visible.runtime—
szv-config-invalidA part of an szv config that does not have the shape szv reads.runtime—
sz-object-depthAn sz object at runtime nested deeper than the depth limit.runtime, error—
szv-forbidden-keyA key in an szv config that csszyx never reads, such as __proto__.runtime—
szv-unknown-variantA selection that names a variant the szv config does not declare.runtime—
szv-unknown-variant-valueA selection that gives a variant a value it has no styles for.runtime—
szv-object-as-stringAn sz object from szv() used as a class string, which renders "[object Object]".runtime—
dynamic-injection-growthA session in which dynamic() has injected so many classes the CSSOM keeps growing.runtime—
dynamic-unsafe-arbitraryAn arbitrary value dynamic() dropped because it could inject CSS.runtime—
dynamic-non-booleanA runtime value that is not a boolean on a key only a boolean can toggle.runtime—
dynamic-unresolvableA runtime value of a type no CSS value can be resolved from.runtime—
dev-warnings-partialA development warning with no source location; csszyx check names the file and key.runtime—
diagnostics-cappedMore findings of one kind than a run lists; the rest are counted, not printed.runtime—
sz-attribute-syntaxAn sz attribute string that does not parse.runtime, error—
options-object-requiredAn options argument that is not the one object the call takes.error—
lowering-not-loadedAn sz object passed to a string helper before the lowering module is loaded.error—
lite-sz-objectAn sz object passed to a lite-runtime helper, which cannot lower objects.error—
split-box-sz-stringA class string passed to splitBoxSz, which takes sz objects.error—
runtime-prefix-conflictTwo builds sharing one runtime that registered different Tailwind prefixes.error—
dynamic-manifest-unreachableA dynamic manifest the browser could not fetch.error—
native-engine-unavailableA native engine that is missing, cannot load, or predates this compiler.runtime, error—
wasm-engine-unavailableA wasm engine that failed to load.error—
native-migrate-unavailableA native engine csszyx migrate needs and cannot load; migrate has no wasm lane.error—
engine-version-skewAn engine built from other source than the compiler that loads it.error—
runtime-version-skewA @csszyx/runtime at another version than the plugin that lowers for it.error—
peer-module-unresolvedA peer package csszyx needs that does not resolve from the project.error—
tailwind-v3-unavailableA project where generate-types finds no loadable Tailwind CSS v3.error—
explain-input-invalidAn input to csszyx explain that is not one sz expression the build lowers.error—
template-sz-invalidA Vue or Svelte file whose template sz has errors, each reported with its own code.error—
template-runtime-valueA template sz value only known at runtime, which a template cannot resolve.error—
template-unparsableA Vue or Svelte file its own compiler cannot parse, so no sz in it gets a class.error—
template-lang-unsupportedA Vue template in a language other than HTML, which csszyx does not read.error—
svelte-version-unsupportedAn installed Svelte older than 5, whose markup csszyx does not read.error—
ignore-package-incompatibleAn installed `ignore` package that no longer reads .gitignore the way csszyx needs.error—
internal-errorA state csszyx should never reach: a csszyx bug to report.error—
engine-call-failedA call into the engine that threw.runtime—
config-invalidA csszyx.config with problems, each reported with its own code.runtime—
unknown-rule-idA rule id no diagnostic, kind or group has, likely a typo.runtime—
config-id-not-settableA rule id for a runtime line or a throw, whose level csszyx.config cannot set.runtime—
removed-rule-idA rule id csszyx no longer reports, with the id that replaced it.runtime—
config-level-invalidA rule set to something other than off, info, warn or error.runtime—
config-preset-unknownA diagnostics preset other than recommended or atomic.runtime—
config-field-unknownA field csszyx.config does not read.runtime—
config-field-invalidA csszyx.config field whose value does not have the shape it takes.runtime—
config-glob-unmatchableAn override glob that is absolute or steps out of the root, so it never matches.runtime—
config-file-duplicateA second csszyx.config file beside the one csszyx reads.runtime—
config-unloadableA csszyx.config that could not be loaded, so the default levels apply.runtime—
config-no-default-exportA csszyx.config with no default export.runtime—
policy-state-format-skewA saved diagnostic policy in a format this version does not read.runtime—
safelist-shard-format-skewA Next safelist shard in a format this version does not read.runtime—
diagnostics-heldFindings at info a production build counted instead of listing.runtime—
merge-covered-heldClasses a build removed by merging, counted instead of listed.runtime—
removed-optionA plugin option that was removed and is no longer read.runtime—
transform-cache-disabledA build without its transform cache, because package versions did not resolve.runtime—
active-parserThe parser a build runs, and whether it fell back from the native engine.runtime—
project-reloadA project-wide input that changed, so a dev server recompiled every module.runtime—
watch-prefix-changedA Tailwind prefix that changed during a watch build, which needs a restart.error—
watch-merge-groups-changedA stylesheet edit during a watch build that changed which sz keys cover each other.runtime—
safelist-unwritableA generated safelist csszyx could not write, so Tailwind misses its classes.runtime—
safelist-cappedA safelist that hit its class cap, so the classes past it were left out.runtime—
utility-collisionAn @utility whose name another utility also claims, so Tailwind merges both.runtime—
theme-scan-without-typescriptTheme auto-scan turned on in a project without TypeScript configured.runtime—
esbuild-mangle-unsupportedproduction.mangle on the esbuild adapter, which turns mangling off.runtime—
mangle-selector-unparsableA CSS selector the class mangler could not parse, left unmangled.runtime—
mangle-preserve-invalidA production.manglePreserve entry that is not a class name or a prefix.error—
mangle-global-vars-options-invalidproduction.mangleGlobalVars options csszyx cannot apply.error—
mangle-global-vars-plan-invalidA global-variable alias plan that renames a variable unsafely.error—
mangle-map-too-largeA CSS variable mangle map larger than its safety cap.error—
mangle-census-lateClasses that appeared after the mangle map was frozen.error—
mangle-hybrid-hazardA production mangle that collides with, or breaks, CSS csszyx did not write.runtime—
merge-hook-lateA rule selecting on a class the build had already merged away.error—
merge-origin-unreadableA Tailwind stylesheet csszyx cannot recompile without its own classes, so the build merges no class.runtime—
tailwind-stylesheet-missingA configured Tailwind stylesheet that does not exist.error—
tailwind-stylesheet-absentA build that emitted classes for `sz` props and processed no Tailwind stylesheet.runtime—
tailwind-stylesheet-brokenA stylesheet reaching Tailwind that does not compile, so the prefix is unknown.error—
tailwind-config-missingA Tailwind config path that does not exist, or a directory with no config.error—
tailwind-config-unloadableA Tailwind config that threw while loading.error—
legacy-source-directiveAn @source line naming the old safelist file, which csszyx no longer writes.error—
postcss-plugin-orderThe csszyx PostCSS plugin listed after Tailwind, which then never reads the safelist.error—
postcss-plugin-missingA Next.js PostCSS config that does not list the csszyx plugin, so Tailwind never reads the safelist.runtime—
ignore-pattern-negatedA negated pattern in an ignore list, which can only add paths.error—
compile-sources-unresolvedA `compileSources` path that does not resolve to a directory.runtime—
compile-sources-skippedFiles under `packages/` that use csszyx and that the build skips, since `compileSources` does not list them.runtime—
css-source-unstableA CSS source that kept changing while csszyx read it.error—
rsc-boundary-violationA client-only csszyx export imported into a Server Component.error—
next-prefix-unreadA Next lane that runs before the Tailwind prefix was read.error—
next-safelist-lockedA Next safelist state another live process holds the lock on.error—
next-mangle-vars-unsupportedproduction.mangleVars on a Next lane that cannot mangle CSS variables.error—
next-turbo-cache-unseededA Turbopack production build whose safelist was not seeded by csszyx next prebuild.error—
next-sz-untransformedA Next module that still holds sz syntax after the csszyx transform.error—
next-watcher-unclosedA Next safelist watcher that threw while closing.runtime—
no-source-filesA source pattern that matched no file under the root.runtime, error—
cli-option-invalidA CLI option value outside the values the command takes.error—

No longer reported

CodeSinceReplaced by
other0.18.0sz-diagnostic
CSSZYX_NATIVE_UNAVAILABLE0.18.0native-engine-unavailable