Expand description
Stable, machine-readable diagnostic codes.
Each constant is a permanent identifier for one class of authoring mistake.
The code is rendered alongside every diagnostic and emitted as a structured
field by webui build --format json, so editors, CI, and AI assistants can
map an error to a deterministic fix or docs page regardless of the
human-readable wording. Treat these as a stable API surface — rename only
with a deliberate, documented migration.
Constants§
- AMBIGUOUS_
MODULE_ ENTRY - More than one build output shares the file name of an authored
<script type="module" src>, so its shared chunks cannot be preloaded without guessing which output the URL serves. Severity: warning. - AUTHORED_
WEBUI_ HYDRATE <webui-hydrate>was written by an application author. It is reserved for the compiler/handler-generated runtime hydration sentinel.- BOUNDARY_
CROSSES_ SCOPE - A
<boundary>would cut through component host content or an inert/raw-text HTML element instead of independently wrapping it. - BOUNDARY_
IN_ FOSTER_ CONTEXT - A
<boundary>appears inside an HTML insertion mode that foster-parents unknown elements (<table>,<tbody>,<tr>,<select>, …), which would separate the generated<webui-hydrate>sentinel from its payload script. - BOUNDARY_
IN_ REPEAT - A
<boundary>is reachable from a<for>repeat body, directly or transitively through<if>, routes/outlets, or a reusable component. A repeat iteration cannot suspend, so the declaration can never be paced independently. - BOUNDARY_
OUTSIDE_ BODY - A
<boundary>appears before<body>opens or after it closes. - COMPONENT_
ASSETS_ WITH_ ROUTES - Static component assets were requested for a graph containing
<route>. - DUPLICATE_
BOUNDARY_ NAME - Two
<boundary>directives in the same owning template share aname. - DUPLICATE_
FOR_ ID - More than one
<for>body defines the same identifier in one file. - DYNAMIC_
LIGHT_ KEYFRAME Deprecated - Legacy code for removed Light-local keyframe namespacing.
- EXCESSIVE_
MODULE_ PRELOADS - A module entry’s static import closure exceeded the
modulepreloadhint cap. Preloads share one connection, so the remainder would delay the entry they are meant to accelerate. Severity: warning. - EXCESSIVE_
NESTING - Template nesting exceeds the parser’s depth limit.
- FAST_
LIGHT_ DOM_ UNSUPPORTED - Compatibility alias for the FAST-owned Light DOM diagnostic code.
- INCOMPATIBLE_
FOR_ ITEM - A named
<for>reference uses a different item variable from its body. - INVALID_
BOUNDARY_ KEY - A
<boundary key>is empty or has malformed binding delimiters. - INVALID_
BOUNDARY_ NAME <boundary name>is not a static string literal (e.g. it contains a{{binding}}).- INVALID_
COMPONENT_ RENDER_ POLICY - A component’s root rendering or hydration policy is malformed.
- INVALID_
CSS - A
<style>block contains malformed CSS. - INVALID_
EVENT_ HANDLER - An
@eventhandler value is not a valid{handler()}expression. - INVALID_
FOR_ EACH <for each>value is not of the formitem in collection.- INVALID_
FOR_ ID <for>has an invalid, conflicting, or unsupported identifier attribute.- INVALID_
FOR_ IDENTIFIER <for each>item or collection name uses disallowed characters.- INVALID_
FOR_ KEY - An explicit repeat key is malformed or used on an invalid element.
- INVALID_
IF_ CONDITION <if condition>value is not a parseable expression.- INVALID_
RENDER_ RESERVATION - A lazy-render intrinsic block-size estimate is malformed or misplaced.
- INVALID_
ROUTE_ BOUNDARY_ PLACEMENT - A route-local
<boundary>is nested in ignored route markup instead of being a direct child of the<route>. - INVALID_
SHADOW_ ROOT_ MODE - A declarative Shadow DOM wrapper has an unsupported mode or placement.
- INVALID_
W_ REF - A
w-refbinding is missing its required{braces}. - LIGHT_
DOM_ SLOT - An unwrapped Light DOM component contains a native
<slot>. - LIGHT_
SCOPE_ COLLISION Deprecated - Legacy code for the removed Light DOM scope-collision diagnostic.
- MALFORMED_
HTML_ TAG - An HTML tag could not be parsed (missing
>, stray<, …). - MISSING_
BOUNDARY_ KEY - A
<boundary>declaration renders more than once — through repeated static callsites of its owning component — without a stable occurrence key. - MISSING_
BOUNDARY_ NAME <boundary>is missing its required, non-emptynameattribute.- MISSING_
FOR_ EACH <for>element is missing its requiredeachattribute.- MISSING_
IF_ CONDITION <if>element is missing its requiredconditionattribute.- MISSING_
RENDER_ RESERVATION - Lazy rendering omitted the intrinsic block-size estimate needed to reserve scroll geometry while the browser skips layout.
- MISSING_
THEME_ TOKEN - A CSS token required by parser output is missing from the configured theme.
- MULTIPLE_
OUTLETS - More than one
<outlet>appears in the same parsed route level. Severity: warning. - NESTED_
BOUNDARY - A
<boundary>is nested inside another<boundary>. - RECURSIVE_
TEMPLATE - A template references itself (directly or transitively) at build time.
- RESERVED_
LIGHT_ DOM_ MARKER Deprecated - Legacy code for the removed compiler-owned Light DOM marker diagnostic.
- SCRIPTLESS_
EVENT_ HANDLER - A scriptless HTML component contains event bindings and needs authored JS.
- STREAMING_
WITHOUT_ PROJECTION - A build declares
<boundary>streaming checkpoints but has no state-projection manifest, so every checkpoint serializes the whole state object instead of its own components’ keys. Severity: warning. - TOO_
MANY_ BOUNDARIES - The protocol-wide boundary declaration identity space was exhausted.
- UNCLOSED_
HTML_ TAG - An HTML element is missing its closing tag.
- UNEXPECTED_
CLOSING_ TAG - A closing tag has no matching opening tag.
- UNKNOWN_
COMPONENT - A component tag has no matching registered component.
- UNKNOWN_
FOR_ ID - A named
<for>reference has no definition in its owning file. - UNSAFE_
MODULE_ PRELOAD - A resolved
modulepreloadhref contains characters that cannot be written verbatim into an HTML attribute, so the hint was dropped rather than emitted or escaped. Severity: warning. - UNSUPPORTED_
LIGHT_ CSS - Light component CSS contains a Shadow-only selector.
- UNTERMINATED_
HTML_ COMMENT - An HTML comment was opened but never closed with
-->. - UNTERMINATED_
HTML_ DECLARATION - An HTML declaration was opened but never closed with
>. - UNTHEMED_
TOKEN - A CSS token used only with a literal
var()fallback and absent from every theme — non-fatal, but usually a typo. Severity: warning.