Skip to content

Theme check

The theme check runs on every save in the code editor and on every upload. Errors stop a save to the live theme and an upload; warnings are shown but don’t block.

Message Fix
Liquid syntax error (with line) Fix the tag or output at that line: an unclosed {% if %}, a missing {% endfor %}, a stray }}.
invalid schema JSON The {% schema %} isn’t valid JSON: look for trailing commas and unquoted keys.
invalid JSON A template, section group, config or locale file isn’t valid JSON.
required file is missing Add layout/theme.liquid, templates/index.json and config/settings_schema.json.
this file can't be part of a theme The folder or file type isn’t allowed; see Directory structure.
a theme can have at most 2000 files Remove unused files.
file is larger than 5 MB (text) / 20 MB (assets) Split the file, or compress the image or video.
links aren't allowed in themes An upload contains a symbolic link: replace it with the file.
section "x" uses unknown type "y" The template names a section file that doesn’t exist.
order lists "x", which isn't in sections Every ID in order needs an entry in sections.
block_order lists "x", which isn't in blocks The same for blocks.
at most 256 sections / at most 50 blocks / at most N "x" blocks Too many sections or blocks for the template or the schema’s max_blocks and limit.
blocks are nested too deeply Blocks can nest 8 levels.
type "x" isn't allowed here The block type isn’t in the parent’s blocks list.
unknown setting "x" A value in a template or settings_data has no setting with that ID.
setting must be … A value doesn’t fit its setting: a number out of range, a select value that isn’t an option.
current preset "x" doesn't exist settings_data.json names a preset it doesn’t define.
Unknown setting type The schema uses a type that isn’t in Input setting types.
Message Fix
include is deprecated: use render include isn’t supported; replace it with render and pass the variables the snippet needs.

Problems that only show at render time (an unknown filter, a missing snippet, a loop over something that isn’t a list) appear in the preview where they happen: Liquid error (snippets/card.liquid): …. On the live store they’re hidden as an HTML comment.

Was this page helpful?