Troubleshooting
An upload (or push, or check) lists every problem at once. Here is what each one means.
The zip
| Problem | Fix |
|---|---|
| The zip is larger than 20 MB. | Compress images, remove unused fonts and assets. |
| The file is not a valid zip archive. | Re-create the zip, or use mattersimple-theme package. |
| The zip has more than 500 files. | A theme can have at most 500 files (development files don't count). Combine or remove files. |
| The zip has too many files. Leave out node_modules… | Zip the theme without node_modules/, or use mattersimple-theme package. |
| The theme is larger than 40 MB once unpacked. | Make assets smaller. |
| “…”: unsafe file path. | Use only letters, digits, spaces and _ . / @ ( ) + - in names, with no ... |
| “…”: symbolic links aren't allowed. | Replace the link with the actual file. |
| “…”: larger than 5 MB. | Make that file smaller. |
| “…”: suspicious compression ratio. | The file compresses unusually well (often generated padding); re-export it. |
Structure
| Problem | Fix |
|---|---|
…: this file isn't allowed in a theme (wrong folder, name or type). |
Check the folder and name against Theme structure. Common causes: subfolders in assets/, capital letters in a section name, a .php or .html file. |
layout/theme.liquid is missing. / config/settings_schema.json is missing. |
Every theme needs these. |
templates/index.json is missing — every theme needs a home page. |
Add templates/index.json (or index.liquid). |
layout/theme.liquid must output {{ content_for_header }} (or content_for_layout) |
Add {{ content_for_header }} in <head> and {{ content_for_layout }} in <body>. |
screenshots/desktop.png (or .jpg/.webp) is missing |
Add a screenshot of your theme. |
…: must be at least 1600×1000 pixels / not a PNG, JPEG or WebP image / larger than 5 MB |
Export the screenshot again at the right size and format. |
JSON and schemas
| Problem | Fix |
|---|---|
…: invalid JSON (…) |
A JSON file doesn't parse: look for trailing commas and unquoted keys. |
…: the {% schema %} block isn't valid JSON. |
Same, inside a section's schema. |
config/settings_schema.json: group #N needs a “name” and a “settings” list. |
Each group is { "name": "…", "settings": [ … ] }. |
…: unknown setting type “…”. |
See the setting types. |
…: every … setting needs a lowercase “id”. |
Ids use a-z, 0-9 and _. |
…: the setting id “…” is used twice. |
Ids must be unique within a schema (or a block). |
…: the select setting “…” needs “options”. |
Add "options": [{ "value": "…", "label": "…" }]. |
…: every block in the schema needs a “type”. |
Give each block in blocks a type. |
…: “animations” must be true or false. |
A section's or block's animations key turns the platform's animation settings off with false. Leave it out, or use true or false (not a string). See Platform settings. |
Liquid and templates
| Problem | Fix |
|---|---|
sections/x.liquid (line N): … |
A Liquid syntax error: an unclosed tag, an unknown tag, a missing endif… |
templates/x.json: section “…” uses the unknown type “…”. |
The template names a section that's in neither your theme nor the Counsel theme. Add sections/<type>.liquid or fix the type. |
Other issues
- My CSS change doesn't show. Run
npm run build:css(devdoes it for you), and check the class is written in full in a.liquidfile (Styling). - A script or font doesn't load. The browser console shows what the content security policy blocked.
- A section or block doesn't animate. Check the theme's Motion setting isn't Off and your device doesn't ask for reduced motion. A block needs
{{ block.theme_attributes }}on its element, and a repeated item needsdata-animate-item. In the theme editor, animations only play when the effect changes; view the site itself to see them on scroll (Motion and animations). - A section shows a red box in the theme editor. It's that section's Liquid error; visitors don't see the box.
pushsays “This is the live theme”. Add--allow-live, or push to an unpublished copy and publish it.- 401 from the CLI. The token expired or was revoked: create a new one and run
loginagain.
Still need help?
Send a request to the Mattersimple team and we'll reply by email.