# Error messages

> Every diagnostic code the compiler can emit, with its cause, an example and the fix.

The Folio compiler never stops at the first problem: it always produces the best presentation it can, plus a list of diagnostics. In the editor, each diagnostic is underlined in the text and listed in the bottom panel, with:

| Part | Example |
| --- | --- |
| Severity | **Error** (something was dropped or does not work) or **warning** (it works, but probably not the way you wanted). |
| Code | `F209`. The code is stable and does not change between versions. |
| Position | Line and column of the problem. |
| Message | unknown attribute: `colr` |
| Hint | Did you mean `color`? |

Errors inside a component are reported on the line where the component is **used**, with the suffix "(in component `name`)". Errors in a `@style` are reported once, at the definition, not at every use.

| Family | Topic |
| --- | --- |
| [F1xx](#f1xx-structure) | Structure: blocks, tables, code, charts and icons. |
| [F2xx](#f2xx-attributes) | Attributes: brace syntax, styles and attribute names. |
| [F3xx](#f3xx-values) | Attribute values. |
| [F4xx](#f4xx-components) | Components and named slots. |
| [F5xx](#f5xx-definitions-and-project-theme) | Preamble definitions and the project theme. |

## F1xx: structure

### F101 · Closing fence with no open block

**Error.** Message: `:::` closes a block, but no block is open here.

A `:::` alone on a line closes the last open block. Here there is no open block, usually because of an extra `:::`.

```folio
# Results
We grew 38%.
:::
```

**How to fix:** remove the line or open a block before it, such as `::: columns`.

### F102 · Unclosed block

**Error.** Message: block `columns` was opened but never closed.

Every block opened with `::: name` needs a `:::` line that closes it. Each slide is read on its own, so the block must be closed before the next `---`.

```folio
::: columns
Left
Right
```

**How to fix:** add a line containing only `:::` at the end of the block.

### F103 · Definition after the first slide

**Error.** Message: `@theme` can only be used at the start of the document, before the first slide.

Definitions with `@` (`@title`, `@theme`, `@color`, `@style`, `@component` and the others) only work in the preamble. Once the first slide starts, they are dropped.

```folio
# Opening

---
@theme ink
# Second slide
```

**How to fix:** move the definition to the top of the file, before any content.

### F104 · Block without a name

**Error.** Message: missing block name after `:::`.

A line that starts with `:::` or `::` and has other content needs the block name right after it.

```folio
::: {.card}
Text
:::
```

**How to fix:** write the block name before the attributes, as in `::: box {.card}`.

### F105 · Unclosed code block

**Error.** Message: unclosed code block.

A code block opened with ` ``` ` needs another ` ``` ` line to end it. Without it, the rest of the slide becomes code.

````folio
```js
console.log("hi")
````

**How to fix:** close the block with a line containing ` ``` `.

### F106 · Table without a separator line

**Error.** Message: table without a separator line after the header.

The second line of a table must be the separator line, which divides the header from the data.

```folio
| Product | Price |
| Coffee | 12 |
```

**How to fix:** add a line like `| --- | --- |` right below the header.

### F107 · Table row with a different number of columns

**Warning.** Message: this row has 3 columns, but the header has 2.

A table row has more or fewer cells than the header.

```folio
| Product | Price |
| --- | --- |
| Coffee | 12 | extra |
```

**How to fix:** give every row the same number of cells as the header. To write `|` inside a cell, use `\|`.

### F108 · Unknown block

**Error.** Message: unknown block: `colums`.

The name after `:::` or `::` is neither a built-in block nor a component defined in the document or the project theme. The hint suggests the closest name.

```folio
::: colums
Text
:::
```

**How to fix:** fix the name (here, `columns`) or define the component with `@component`. See the list in [Blocks](/docs/en/reference/blocks/).

### F109 · Single-line block with content

**Warning.** Message: `divider` does not accept content; use `:: divider` on a single line.

`icon`, `spacer` and `divider` have no content. When opened with `:::`, the content between them and the closing `:::` is ignored.

```folio
::: divider
Text
:::
```

**How to fix:** use the single-line form, `:: divider`, and put the text outside the block.

### F110 · Text ignored after the block name

**Warning.** Message: the text `3` after `grid` will be ignored.

Only `icon` and `spacer` take a value after the name. On the other built-in blocks, loose text is ignored.

```folio
::: grid 3
A
B
C
:::
```

**How to fix:** use attributes in braces, as in `::: grid {cols=3}`.

### F111 · Chart without a table

**Error.** Message: the chart needs a table with the data.

The `chart` block draws the data of a Markdown table placed inside it. Without a table, the chart is not drawn.

```folio
::: chart {type=bar}
Sales per month
:::
```

**How to fix:** put a table inside the block. The first column holds the labels and the others are the series. See [Charts](/docs/en/guides/charts/).

### F112 · Chart value is not a number

**Error.** Message: `twelve` is not a number.

Every data cell of a chart, except the first column, must be a number. The invalid cell counts as 0.

```folio
::: chart
| Month | Sales |
| --- | ---: |
| Jan | twelve |
:::
```

**How to fix:** use numbers such as `42`, `3.5` or `3,5`. A trailing `%` is accepted.

### F113 · Chart without series

**Error.** Message: the chart table needs at least one column of values.

The table only has the label column, so there is nothing to draw.

```folio
::: chart
| Month |
| --- |
| Jan |
:::
```

**How to fix:** add at least one column of values to the table.

### F114 · Icon without a name

**Error.** Message: provide the icon name.

```folio
:: icon {size=3xl}
```

**How to fix:** write the name after `icon`, as in `:: icon rocket {size=3xl}`. The names are listed in [Icons](/docs/en/reference/icons/).

### F115 · Unknown icon

**Error.** Message: unknown icon: `rockets`.

The name is not in the list of built-in icons. When there is a similar name, the hint suggests it.

```folio
:: icon rockets
```

**How to fix:** use a name from the list in [Icons](/docs/en/reference/icons/), such as `rocket`.

## F2xx: attributes

### F201 · Dot or hash without a name

**Error.** Message: `.` must be followed by a name.

Inside braces, `.` must be attached to a style name and `#` to an id.

```folio
Text {. color=accent}
```

**How to fix:** write the name right after it, as in `{.highlight}` or `{#opening}`, or remove the loose character.

### F202 · Unclosed quotes

**Error.** Message: unclosed quotes in attribute value.

A value that starts with a quote must end with the same quote.

```folio
![Photo](https://example.com/photo.jpg){fit="cover}
```

**How to fix:** close the value with the quote that opened it: `{fit="cover"}`. At the end of headings, paragraphs and blocks, braces with an open quote are not recognized as attributes and show up as text on the slide.

### F203 · Attribute without a value

**Error.** Message: attribute `color` has no value after `=`.

There is an `=` with nothing after it. It usually comes with an [F301](#f301--invalid-value), because the empty value is also invalid.

```folio
# Heading {color=}
```

**How to fix:** provide the value (`{color=accent}`) or remove the attribute.

### F204 · Invalid text in attributes

**Error.** Message: invalid text in attributes: `@highlight`.

Inside braces, only `.style`, `#id`, `key=value`, `key="value with spaces"` and `key` are accepted.

```folio
Text {@highlight}
```

**How to fix:** use the right form, here `{.highlight}`. Attribute names start with a letter.

### F205 · Id outside the slide separator

**Warning.** Message: `#id` only works on the slide separator (--- {#id}).

Ids identify slides, for links such as `[back](#opening)`. On other blocks, the id is ignored.

```folio
# Opening {#start}
```

**How to fix:** put the id on the slide separator, as in `--- {#start}`.

### F206 · Style that references itself

**Error.** Message: style `.loop` references itself.

A `@style` includes itself, directly or through other styles. Since the style does not exist yet while its own definition is read, the compiler also shows an [F207](#f207--unknown-style) at the same spot.

```folio
@style loop {.loop color=accent}

Text {.loop}
```

**How to fix:** remove the circular reference. A style can only include styles defined before it.

### F207 · Unknown style

**Error.** Message: unknown style: `.highlite`.

The name after the `.` is not a built-in style, a `@style` or a color token. The hint suggests the closest name.

```folio
Text {.highlite}
```

**How to fix:** fix the name or declare the style at the start of the document with `@style name {attributes}`. See the [built-in styles](/docs/en/reference/themes/#built-in-styles).

### F208 · Repeated slide id

**Warning.** Message: another slide already uses the id `#summary`.

Two slides have the same id, so a `#summary` link can only lead to one of them.

```folio
--- {#summary}
# Summary

--- {#summary}
# Conclusion
```

**How to fix:** give each slide a different id.

### F209 · Unknown attribute

**Error.** Message: unknown attribute: `colr`.

The name is neither a style attribute nor an attribute of the block it appears on. The hint suggests the closest name or lists the attributes accepted there.

```folio
# Heading {colr=coral}
```

**How to fix:** fix the name. Block attributes, such as `cols` or `fit`, only work on the right blocks. See [Attributes](/docs/en/reference/attributes/).

## F3xx: values

### F301 · Invalid value

**Error.** Message: depends on the attribute, for example invalid size: `huge` or unknown color: `corall`.

The attribute exists, but the value is not accepted. The attribute is ignored, and the hint says which values are valid.

```folio
# Heading {size=huge color=corall}
```

Common cases:

| Case | Invalid example | Valid example |
| --- | --- | --- |
| Unknown color or malformed hex | `color=corall`, `color=#12` | `color=coral`, `color=#123` |
| Color opacity outside 0 to 100 | `color=accent/150` | `color=accent/40` |
| Name outside the scale or number out of range | `size=huge`, `pad=900` | `size=5xl`, `pad=xl` |
| Font not declared | `font=title` | `font=display` or `@font title …` |
| Invalid weight | `weight=450` | `weight=500` |
| Invalid boolean | `italic=maybe` | `italic` or `italic=false` |
| Invalid alignment | `align=middle` | `align=center` |
| Invalid shadow | `shadow=xl` | `shadow=lg` |
| Border wider than 40 | `border="80 coral"` | `border="4 coral"` |
| Invalid length | `w=200%`, `w=half` | `w=50%`, `w=480` |
| Attribute that needs a value, used alone | `{size}` | `{size=xl}` |
| Address not allowed in a link or image | `[x](javascript:…)`, `![x](file.png)` | `https://…`, `asset:<id>` |
| Invalid image fit | `fit=stretch` | `fit=cover` |
| Grid columns outside 1 to 12 | `cols=20` | `cols=4` |
| Invalid column proportions | `widths="a b"` | `widths="2 1"` |
| Invalid chart type | `type=radar` | `type=line` |
| Invalid `spacer` size | `:: spacer huge` | `:: spacer 3xl` |
| Step outside 1 to 99 | `step=0` | `step=1` |

**How to fix:** use one of the values given in the hint. The full scales and ranges are in [Attributes](/docs/en/reference/attributes/).

### F302 · `widths` does not match the columns

**Warning.** Message: `widths` has 3 values, but there are 1 columns.

The number of proportions in `widths` differs from the number of children of the `columns` block.

```folio
::: columns {widths="2 1 1"}
Left
:::
```

**How to fix:** give one proportion per column, or adjust the columns. Remember that each direct child is a column; group several elements with `::: stack`.

## F4xx: components

### F401 · `$content` outside a component

**Error.** Message: `$content` can only be used inside a @component.

`$content` marks where the content passed to a component goes, so it only makes sense in the body of a `@component`.

```folio
# Heading
$content
```

**How to fix:** remove the line or move it into a component body. To write the literal text, use `\$content`.

### F404 · Component that uses itself

**Error.** Message: component `echo` uses itself.

A component uses itself, directly or through other components. Components have no recursion, so the use is dropped.

```folio
@component echo
:: echo
@end

:: echo
```

**How to fix:** remove the circular use from the component body.

### F405 · Components nested too deeply

**Error.** Message: components nested too deeply (limit: 16 levels).

A component uses another, which uses another, and so on, for more than 16 levels. The example below is abbreviated: with all 17 definitions written out, the error shows up on the use of `n1`.

```folio
@component n1
:: n2
@end
@component n2
:: n3
@end
// n3 to n16 follow the same pattern, each one using the next
@component n17
End
@end

:: n1
```

**How to fix:** simplify the chain of components by merging intermediate levels.

### F406 · Style or id on a component use

**Error.** Message: components only accept parameters, not .styles or #id.

When using a component, the braces only accept named parameters.

```folio
@component badge {text}
::: box {.card}
$text
:::
@end

:: badge {.dark text=New}
```

**How to fix:** wrap the component in a block with the style (`::: box {.dark}` … `:: badge {text=New}` … `:::`) or add a parameter for it.

### F407 · Unknown parameter

**Error.** Message: component `badge` has no parameter `tone`.

The parameter was not declared in the component definition. The hint lists the existing parameters.

```folio
@component badge {text}
::: box {.card}
$text
:::
@end

:: badge {text=New tone=accent}
```

**How to fix:** fix the name or declare the parameter, as in `@component badge {text tone=accent}`.

### F408 · Loose text after the component name

**Error.** Message: components take named parameters in braces.

Components do not take positional values: every parameter needs a name.

```folio
@component badge {text=New}
::: box {.card}
$text
:::
@end

:: badge Sale
```

**How to fix:** pass the value as a named parameter: `:: badge {text=Sale}`.

### F409 · Missing required parameter

**Error.** Message: missing required parameter `text` of component `badge`.

Parameters declared without a default value are required.

```folio
@component badge {text}
::: box {.card}
$text
:::
@end

:: badge
```

**How to fix:** provide the parameter (`:: badge {text=New}`) or give it a default value in the definition (`@component badge {text=New}`).

### F410 · Undeclared `$` placeholder

**Error.** Message: component `badge` uses `$title`, which is not a declared parameter.

The component body uses `$title` inside text or an attribute, but `title` is not in the parameter list.

```folio
@component badge {text}
::: box {.card}
## $title
$text
:::
@end

:: badge {text=New}
```

**How to fix:** declare the parameter (`@component badge {text title}`) or fix the name. Alone on a line, `$name` is a named slot and does not cause this error.

### F411 · Content ignored by the component

**Warning.** Message: component `badge` does not use `$content`; the content will be ignored.

The component was used with `:::` and received content, but its body has no `$content`.

```folio
@component badge {text}
::: box {.card}
$text
:::
@end

::: badge {text=New}
This paragraph is ignored.
:::
```

**How to fix:** add `$content` to the component body or use the single-line form (`:: badge {text=New}`).

### F412 · Built-in block name

**Error.** Message: `box` is already a language block and cannot be redefined.

The names `stack`, `row`, `columns`, `grid`, `box`, `steps`, `notes`, `chart`, `icon`, `spacer`, `divider` and `slot` are reserved.

```folio
@component box
Text
@end
```

**How to fix:** pick another name, such as `panel` or `card-box`.

### F413 · Component defined twice

**Error.** Message: component `badge` was defined more than once.

The same document defines two components with the same name. The second definition is dropped.

```folio
@component badge
New
@end
@component badge
Sale
@end
```

**How to fix:** remove or rename one of the definitions. Redefining a project theme component in a presentation is allowed and does not cause this error.

### F414 · Unknown named slot

**Error.** Message: component `pair` has no slot `side-c`.

`::: slot` fills a slot that the component does not declare. The hint suggests the closest name.

```folio
@component pair {title}
## $title
$content
$side-b
@end

::: pair {title=Comparison}
Before
::: slot side-c
After
:::
:::
```

**How to fix:** use the name of an existing slot (here, `side-b`) or declare the slot in the component with `$side-c` alone on a line.

### F415 · `::: slot` without a name

**Error.** Message: provide the slot name.

```folio
@component pair {title}
## $title
$content
$side-b
@end

::: pair {title=Comparison}
Before
::: slot
After
:::
:::
```

**How to fix:** write the slot name after `slot`, as in `::: slot side-b`.

### F416 · `::: slot` outside a component

**Error.** Message: `::: slot` can only be used inside a component.

`::: slot` only works as a direct child of a container component use. Outside one, the compiler also warns that the name is ignored ([F110](#f110--text-ignored-after-the-block-name)).

```folio
::: slot side-b
After
:::
```

**How to fix:** put the `::: slot` inside `::: component` … `:::`, or remove the block.

### F417 · Slot filled twice

**Error.** Message: slot `side-b` was filled more than once.

```folio
@component pair {title}
## $title
$content
$side-b
@end

::: pair {title=Comparison}
::: slot side-b
After
:::
::: slot side-b
Again
:::
:::
```

**How to fix:** merge the content into a single `::: slot side-b`.

## F5xx: definitions and project theme

### F501 · Definition without a value

**Error.** Message: `@title` needs a value.

`@title`, `@author`, `@theme`, `@version` and `@aspect` need a value on the same line.

```folio
@title

# Opening
```

**How to fix:** provide the value, as in `@title Annual report`, or remove the line.

### F502 · Incomplete `@color`

**Error.** Message: `@color` expects a name and a value.

```folio
@color

# Opening
```

**How to fix:** provide the token name and the color, as in `@color brand #ff6b4a`.

### F503 · Incomplete `@style`

**Error.** Message: `@style` expects a name and attributes.

```folio
@style highlight

# Opening
```

**How to fix:** provide the name and the attributes in braces, as in `@style highlight {color=coral weight=bold}`.

### F504 · Block without `@end`

**Error.** Message: `@component` without `@end` (or `@header`, `@footer`).

Without `@end`, the rest of the document is read as the block body, and the presentation ends up with no slides.

```folio
@component badge {text}
::: box {.card}
$text
:::

# Opening
```

**How to fix:** end the `@component`, `@header` or `@footer` with an `@end` line.

### F505 · `@end` without an open block

**Error.** Message: `@end` without an open block.

An `@end` line appears with no open `@component`, `@header` or `@footer` before it.

```folio
@end

# Opening
```

**How to fix:** remove the `@end` or add, before it, the `@component`, `@header` or `@footer` it should close.

### F506 · Unknown definition

**Error.** Message: unknown definition: `@theem`.

The name after `@` is not a language definition. The hint suggests the closest one.

```folio
@theem ink

# Opening
```

**How to fix:** use one of the definitions: `@title`, `@author`, `@theme`, `@version`, `@aspect`, `@color`, `@font`, `@style`, `@component`, `@header`, `@footer` or `@end`.

### F507 · Font name without closing quotes

**Error.** Message: font name without closing quotes.

```folio
@font title "Bebas Neue 400

# Opening
```

**How to fix:** close the quotes after the family name: `@font title "Bebas Neue" 400`.

### F508 · Invalid font family

**Error.** Message: invalid font name: `Open-Sans`.

The family name can only contain letters, numbers and spaces, and cannot be empty.

```folio
@font title "Open-Sans"

# Opening
```

**How to fix:** use the family name as it appears on Google Fonts, in quotes: `@font title "Open Sans"`.

### F509 · Invalid font weight

**Error.** Message: invalid font weight: `450`.

```folio
@font title "Inter" 450

# Opening
```

**How to fix:** use weights from 100 to 900, in steps of 100, such as `400` or `500`.

### F510 · Component without a name

**Error.** Message: `@component` needs a name.

```folio
@component {text}
$text
@end
```

**How to fix:** write the name right after `@component`: `@component badge {text}`.

### F511 · Invalid component name

**Error.** Message: invalid component name: `Badge`.

Component names start with a lowercase letter and use only lowercase letters, numbers and hyphens.

```folio
@component Badge {text}
$text
@end
```

**How to fix:** use a name such as `badge` or `new-badge`.

### F512 · Component parameter with a style or id

**Error.** Message: component parameters do not accept .style or #id.

The braces after `@component` declare parameters, not styles.

```folio
@component badge {.card text}
$text
@end
```

**How to fix:** remove the `.style` or `#id` from the list and apply the style to a block in the body, such as `::: box {.card}`.

### F513 · Unknown theme

**Error.** Message: unknown theme: `dark`.

The theme does not exist, and the document falls back to the `paper` theme.

```folio
@theme dark

# Opening
```

**How to fix:** use `paper`, `ink` or `editorial`. See [Built-in themes](/docs/en/reference/themes/).

`@theme` does not create or name a theme: it only picks the base. To have your own theme, keep a base and adjust it with `@color`, `@font` and `@style`. In the Library, the theme's name goes in the **Name** field. See [Themes](/docs/en/guides/themes/).

### F514 · Unsupported language version

**Error.** Message: unsupported language version: `2`.

```folio
@version 2

# Opening
```

**How to fix:** use `@version 1`, the current version, or remove the line.

### F515 · Unsupported aspect ratio

**Error.** Message: unsupported aspect ratio: `21:9`.

```folio
@aspect 21:9

# Opening
```

**How to fix:** use `16:9` (the default) or `4:3`.

### F516 · Invalid color name

**Error.** Message: invalid color name: `Brand`.

Color tokens start with a lowercase letter and use only lowercase letters, numbers and hyphens.

```folio
@color Brand #ff6b4a

# Opening
```

**How to fix:** use a name such as `brand` or `brand-dark`.

### F517 · Invalid font token name

**Error.** Message: invalid font name: `Title`.

The token name (the first word after `@font`) follows the same rule as color tokens.

```folio
@font Title "Bebas Neue" 400

# Opening
```

**How to fix:** use a name such as `title`, and apply it with `{font=title}`.

### F518 · Invalid style name

**Error.** Message: invalid style name: `Highlight`.

```folio
@style Highlight {color=accent weight=bold}

# Opening
```

**How to fix:** use lowercase letters, numbers and hyphens, such as `highlight`.

### F519 · Slides in the project theme

**Error.** Message: the project theme can only contain definitions, not slides.

It only appears in the [project theme](/docs/en/guides/themes/) editor, never in presentations. The example below is the text of the project theme.

```folio
@theme ink
@color brand #12a37f

# Opening
```

**How to fix:** keep only lines that start with `@` (`@theme`, `@color`, `@font`, `@style` and `@component`) in the theme, plus blank lines and comments. Slide content goes in each presentation.

### F520 · `@title` or `@author` in the project theme

**Warning.** Message: `@title` in the project theme is ignored; set it in each presentation.

It only appears in the project theme editor. Title and author belong to each presentation, so they are ignored in the theme.

```folio
@title Annual report
@theme ink
```

**How to fix:** remove the line from the theme and write `@title` or `@author` at the start of each presentation.

### F521 · Repeated `@header` or `@footer`

**Error.** Message: `@footer` was defined more than once.

Each presentation has one header and one footer. The second block is ignored.

```folio
@footer
Confidential
@end

@footer
$page / $pages
@end

# Opening
```

**How to fix:** put all the content in a single block, for example with `::: columns`. See [Header and footer](/docs/en/guides/header-footer/).

### F522 · Unknown field in the header or footer

**Error.** Message: `@footer` uses `$pagina`, which is not an available field.

Inside `@header` and `@footer`, `$` followed by a name is an automatic field. The hint suggests the closest field.

```folio
@footer
Page $pagina
@end

# Opening

---
# Agenda
```

**How to fix:** use one of the fields: `$page`, `$pages`, `$title`, `$author` or `$date`.

### F523 · Step-by-step reveal in the header or footer

**Warning.** Message: `@footer` is always shown in full; `step` and `::: steps` are ignored in it.

```folio
@footer
::: steps
- First
- Second
:::
@end

# Opening

---
# Agenda
```

**How to fix:** remove `step` and `::: steps` from the block. To reveal something gradually, do it inside the slide.

### F524 · Notes in the header or footer

**Warning.** Message: speaker notes inside `@footer` are ignored.

```folio
@footer
Confidential
::: notes
Remember to mention the contract.
:::
@end

# Opening

---
# Agenda
```

**How to fix:** write `::: notes` inside the slide where the note belongs.

### F525 · Text on the `@header` or `@footer` line

**Warning.** Message: the text `Confidential` after `@footer` will be ignored.

The `@header` or `@footer` line only accepts attributes in braces. The content goes on the following lines, up to `@end`.

```folio
@footer Confidential
@end

# Opening
```

**How to fix:** move the text to the next line. To turn off the footer that comes from the project theme, use `@footer none`.

### F530 · Definition that does not fit the Library item kind

**Error.** Message: `@theme` cannot be used in a palette.

Each [Library](/docs/en/guides/library/) item kind accepts only some definitions: palettes take `@color` and `@font`; styles also take `@style`; components also take `@component`; themes accept any theme definition.

```folio
@theme paper
@color brand #349ef4
```

**How to fix:** delete the highlighted line or save the item with another kind, for example **Theme** instead of **Palette**.

### F531 · Library item without a main definition

**Error.** Message: choose which component is the main one.

Library components and styles must say which definition is the main one, the one people call when they use the item.

**How to fix:** in the Library editor, pick the **Main definition**.

### F532 · Main definition not found

**Error.** Message: component not found: `card`.

The chosen main definition does not exist in the item text, or it was renamed.

**How to fix:** pick another main definition or fix the name in the text.

### F533 · Unknown item kind

**Error.** Message: unknown item kind: `slide`.

The item was sent with a kind the Library does not know. Valid kinds are theme, component, style and palette (templates are validated as themes).

**How to fix:** save the item again from the app, picking one of the kinds in the list.
