Compiler errors
animation_duplicate
An element can only have one 'animate' directive
animation_invalid_placement
An element that uses the `animate:` directive must be the only child of a keyed `{#each ...}` block
animation_missing_key
An element that uses the `animate:` directive must be the only child of a keyed `{#each ...}` block. Did you forget to add a key to your each block?
attribute_contenteditable_dynamic
'contenteditable' attribute cannot be dynamic if element uses two-way binding
attribute_contenteditable_missing
'contenteditable' attribute is required for textContent, innerHTML and innerText two-way bindings
attribute_duplicate
Attributes need to be unique
attribute_empty_shorthand
Attribute shorthand cannot be empty
attribute_invalid_event_handler
Event attribute must be a JavaScript expression, not a string
attribute_invalid_multiple
'multiple' attribute must be static if select uses two-way binding
attribute_invalid_name
'%name%' is not a valid attribute name
attribute_invalid_sequence_expression
Sequence expressions are not allowed as attribute/directive values in runes mode, unless wrapped in parentheses
attribute_invalid_type
'type' attribute must be a static text value if input uses two-way binding
attribute_unquoted_sequence
Attribute values containing `{...}` must be enclosed in quote marks, unless the value only contains the expression
bind_invalid_expression
Can only bind to an Identifier or MemberExpression
bind_invalid_name
`bind:%name%` is not a valid binding
`bind:%name%` is not a valid binding. %explanation%
bind_invalid_target
`bind:%name%` can only be used with %elements%
bind_invalid_value
Can only bind to state or props
bindable_invalid_location
`$bindable()` can only be used inside a `$props()` declaration
block_duplicate_clause
%name% cannot appear more than once within a block
block_invalid_continuation_placement
{:...} block is invalid at this position (did you forget to close the preceding element or block?)
block_invalid_elseif
'elseif' should be 'else if'
block_invalid_placement
{#%name% ...} block cannot be %location%
block_unclosed
Block was left open
block_unexpected_character
Expected a `%character%` character immediately following the opening bracket
block_unexpected_close
Unexpected block closing tag
component_invalid_directive
This type of directive is not valid on components
const_tag_cycle
Cyclical dependency detected: %cycle%
const_tag_invalid_expression
{@const ...} must consist of a single variable declaration
const_tag_invalid_placement
`{@const}` must be the immediate child of `{#snippet}`, `{#if}`, `{:else if}`, `{:else}`, `{#each}`, `{:then}`, `{:catch}`, `<svelte:fragment>` or `<Component>`
constant_assignment
Cannot assign to %thing%
constant_binding
Cannot bind to %thing%
css_empty_declaration
Declaration cannot be empty
css_expected_identifier
Expected a valid CSS identifier
css_global_block_invalid_combinator
A `:global` selector cannot follow a `%name%` combinator
css_global_block_invalid_declaration
A top-level `:global {...}` block can only contain rules, not declarations
css_global_block_invalid_list
A `:global` selector cannot be part of a selector list with more than one item
css_global_block_invalid_modifier
A `:global` selector cannot modify an existing selector
css_global_block_invalid_modifier_start
A `:global` selector can only be modified if it is a descendant of other selectors
css_global_invalid_placement
`:global(...)` can be at the start or end of a selector sequence, but not in the middle
css_global_invalid_selector
`:global(...)` must contain exactly one selector
css_global_invalid_selector_list
`:global(...)` must not contain type or universal selectors when used in a compound selector
css_nesting_selector_invalid_placement
Nesting selectors can only be used inside a rule or as the first selector inside a lone `:global(...)`
css_selector_invalid
Invalid selector
css_type_selector_invalid_placement
`:global(...)` must not be followed by a type selector
debug_tag_invalid_arguments
{@debug ...} arguments must be identifiers, not arbitrary expressions
declaration_duplicate
`%name%` has already been declared
declaration_duplicate_module_import
Cannot declare a variable with the same name as an import inside `<script module>`
derived_invalid_export
Cannot export derived state from a module. To expose the current derived value, export a function returning its value
directive_invalid_value
Directive value must be a JavaScript expression enclosed in curly braces
directive_missing_name
`%type%` name cannot be empty
dollar_binding_invalid
The $ name is reserved, and cannot be used for variables and imports
dollar_prefix_invalid
The $ prefix is reserved, and cannot be used for variables and imports
each_item_invalid_assignment
Cannot reassign or bind to each block argument in runes mode. Use the array and index variables instead (e.g. `array[i] = value` instead of `entry = value`)
effect_invalid_placement
`$effect()` can only be used as an expression statement
element_invalid_closing_tag
`</%name%>` attempted to close an element that was not open
element_invalid_closing_tag_autoclosed
`</%name%>` attempted to close element that was already automatically closed by `<%reason%>` (cannot nest `<%reason%>` inside `<%name%>`)
element_unclosed
`<%name%>` was left open
event_handler_invalid_component_modifier
Event modifiers other than 'once' can only be used on DOM elements
event_handler_invalid_modifier
Valid event modifiers are %list%
event_handler_invalid_modifier_combination
The '%modifier1%' and '%modifier2%' modifiers cannot be used together
expected_attribute_value
Expected attribute value
expected_block_type
Expected 'if', 'each', 'await', 'key' or 'snippet'
expected_identifier
Expected an identifier
expected_pattern
Expected identifier or destructure pattern
expected_token
Expected token %token%
expected_whitespace
Expected whitespace
global_reference_invalid
`%name%` is an illegal variable name. To reference a global variable called `%name%`, use `globalThis.%name%`
host_invalid_placement
`$host()` can only be used inside custom element component instances
illegal_element_attribute
`<%name%>` does not support non-event attributes or spread attributes
import_svelte_internal_forbidden
Imports of `svelte/internal/*` are forbidden. It contains private runtime code which is subject to change without notice. If you're importing from `svelte/internal/*` to work around a limitation of Svelte, please open an issue at https://github.com/sveltejs/svelte and explain your use case
invalid_arguments_usage
The arguments keyword cannot be used within the template or at the top level of a component
js_parse_error
%message%
legacy_export_invalid
Cannot use `export let` in runes mode — use `$props()` instead
legacy_props_invalid
Cannot use `$$props` in runes mode
legacy_reactive_statement_invalid
`$:` is not allowed in runes mode, use `$derived` or `$effect` instead
legacy_rest_props_invalid
Cannot use `$$restProps` in runes mode
let_directive_invalid_placement
`let:` directive at invalid position
mixed_event_handler_syntaxes
Mixing old (on:%name%) and new syntaxes for event handling is not allowed. Use only the on%name% syntax
module_illegal_default_export
A component cannot have a default export
node_invalid_placement
%thing% is invalid inside `<%parent%>`
HTML restricts where certain elements can appear. In case of a violation the browser will ‘repair’ the HTML in a way that breaks Svelte’s assumptions about the structure of your components. Some examples:
<p>hello <div>world</div></p>
will result in<p>hello </p><div>world</div><p></p>
for example (the<div>
autoclosed the<p>
because<p>
cannot contain block-level elements)<option><div>option a</div></option>
will result in<option>option a</option>
(the<div>
is removed)<table><tr><td>cell</td></tr></table>
will result in<table><tbody><tr><td>cell</td></tr></tbody></table>
(a<tbody>
is auto-inserted)
options_invalid_value
Invalid compiler option: %details%
options_removed
Invalid compiler option: %details%
options_unrecognised
Unrecognised compiler option %keypath%
props_duplicate
Cannot use `$props()` more than once
props_illegal_name
Declaring or accessing a prop starting with `$$` is illegal (they are reserved for Svelte internals)
props_invalid_identifier
`$props()` can only be used with an object destructuring pattern
props_invalid_pattern
`$props()` assignment must not contain nested properties or computed keys
props_invalid_placement
`$props()` can only be used at the top level of components as a variable declaration initializer
reactive_declaration_cycle
Cyclical dependency detected: %cycle%
render_tag_invalid_call_expression
Calling a snippet function using apply, bind or call is not allowed
render_tag_invalid_expression
`{@render ...}` tags can only contain call expressions
render_tag_invalid_spread_argument
cannot use spread arguments in `{@render ...}` tags
rune_invalid_arguments
`%rune%` cannot be called with arguments
rune_invalid_arguments_length
`%rune%` must be called with %args%
rune_invalid_computed_property
Cannot access a computed property of a rune
rune_invalid_name
`%name%` is not a valid rune
rune_invalid_usage
Cannot use `%rune%` rune in non-runes mode
rune_missing_parentheses
Cannot use rune without parentheses
rune_removed
The `%name%` rune has been removed
rune_renamed
`%name%` is now `%replacement%`
runes_mode_invalid_import
%name% cannot be used in runes mode
script_duplicate
A component can have a single top-level `<script>` element and/or a single top-level `<script module>` element
script_invalid_attribute_value
If the `%name%` attribute is supplied, it must be a boolean attribute
script_invalid_context
If the context attribute is supplied, its value must be "module"
script_reserved_attribute
The `%name%` attribute is reserved and cannot be used
slot_attribute_duplicate
Duplicate slot name '%name%' in <%component%>
slot_attribute_invalid
slot attribute must be a static value
slot_attribute_invalid_placement
Element with a slot='...' attribute must be a child of a component or a descendant of a custom element
slot_default_duplicate
Found default slot content alongside an explicit slot="default"
slot_element_invalid_attribute
`<slot>` can only receive attributes and (optionally) let directives
slot_element_invalid_name
slot attribute must be a static value
slot_element_invalid_name_default
`default` is a reserved word — it cannot be used as a slot name
slot_snippet_conflict
Cannot use `<slot>` syntax and `{@render ...}` tags in the same component. Migrate towards `{@render ...}` tags completely
snippet_conflict
Cannot use explicit children snippet at the same time as implicit children content. Remove either the non-whitespace content or the children snippet block
snippet_invalid_rest_parameter
Snippets do not support rest parameters; use an array instead
snippet_parameter_assignment
Cannot reassign or bind to snippet parameter
snippet_shadowing_prop
This snippet is shadowing the prop `%prop%` with the same name
state_invalid_export
Cannot export state from a module if it is reassigned. Either export a function returning the state value or only mutate the state value's properties
state_invalid_placement
`%rune%(...)` can only be used as a variable declaration initializer or a class field
store_invalid_scoped_subscription
Cannot subscribe to stores that are not declared at the top level of the component
store_invalid_subscription
Cannot reference store value inside `<script module>`
store_invalid_subscription_module
Cannot reference store value outside a `.svelte` file
Using a $
prefix to refer to the value of a store is only possible inside .svelte
files, where Svelte can automatically create subscriptions when a component is mounted and unsubscribe when the component is unmounted. Consider migrating to runes instead.
style_directive_invalid_modifier
`style:` directive can only use the `important` modifier
style_duplicate
A component can have a single top-level `<style>` element
svelte_body_illegal_attribute
`<svelte:body>` does not support non-event attributes or spread attributes
svelte_boundary_invalid_attribute
Valid attributes on `<svelte:boundary>` are `onerror` and `failed`
svelte_boundary_invalid_attribute_value
Attribute value must be a non-string expression
svelte_component_invalid_this
Invalid component definition — must be an `{expression}`
svelte_component_missing_this
`<svelte:component>` must have a 'this' attribute
svelte_element_missing_this
`<svelte:element>` must have a 'this' attribute with a value
svelte_fragment_invalid_attribute
`<svelte:fragment>` can only have a slot attribute and (optionally) a let: directive
svelte_fragment_invalid_placement
`<svelte:fragment>` must be the direct child of a component
svelte_head_illegal_attribute
`<svelte:head>` cannot have attributes nor directives
svelte_meta_duplicate
A component can only have one `<%name%>` element
svelte_meta_invalid_content
<%name%> cannot have children
svelte_meta_invalid_placement
`<%name%>` tags cannot be inside elements or blocks
svelte_meta_invalid_tag
Valid `<svelte:...>` tag names are %list%
svelte_options_deprecated_tag
"tag" option is deprecated — use "customElement" instead
svelte_options_invalid_attribute
`<svelte:options>` can only receive static attributes
svelte_options_invalid_attribute_value
Value must be %list%, if specified
svelte_options_invalid_customelement
"customElement" must be a string literal defining a valid custom element name or an object of the form { tag?: string; shadow?: "open" | "none"; props?: { [key: string]: { attribute?: string; reflect?: boolean; type: .. } } }
svelte_options_invalid_customelement_props
"props" must be a statically analyzable object literal of the form "{ [key: string]: { attribute?: string; reflect?: boolean; type?: "String" | "Boolean" | "Number" | "Array" | "Object" }"
svelte_options_invalid_customelement_shadow
"shadow" must be either "open" or "none"
svelte_options_invalid_tagname
Tag name must be lowercase and hyphenated
See https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name for more information on valid tag names
svelte_options_reserved_tagname
Tag name is reserved
See https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name for more information on valid tag names
svelte_options_unknown_attribute
`<svelte:options>` unknown attribute '%name%'
svelte_self_invalid_placement
`<svelte:self>` components can only exist inside `{#if}` blocks, `{#each}` blocks, `{#snippet}` blocks or slots passed to components
tag_invalid_name
Expected a valid element or component name. Components must have a valid variable name or dot notation expression
tag_invalid_placement
{@%name% ...} tag cannot be %location%
textarea_invalid_content
A `<textarea>` can have either a value attribute or (equivalently) child content, but not both
title_illegal_attribute
`<title>` cannot have attributes nor directives
title_invalid_content
`<title>` can only contain text and {tags}
transition_conflict
Cannot use `%type%:` alongside existing `%existing%:` directive
transition_duplicate
Cannot use multiple `%type%:` directives on a single element
typescript_invalid_feature
TypeScript language features like %feature% are not natively supported, and their use is generally discouraged. Outside of `<script>` tags, these features are not supported. For use within `<script>` tags, you will need to use a preprocessor to convert it to JavaScript before it gets passed to the Svelte compiler. If you are using `vitePreprocess`, make sure to specifically enable preprocessing script tags (`vitePreprocess({ script: true })`)
unexpected_eof
Unexpected end of input
unexpected_reserved_word
'%word%' is a reserved word in JavaScript and cannot be used here
void_element_invalid_content
Void elements cannot have children or closing tags
previous next