HERON

Basics · 7

If something goes wrong

Most problems beginners meet are the same handful: Docker is not running, a port is busy, files belong to the wrong user, a page sits in the wrong folder. This page lists them with the fix, then explains every build error code in plain words.

Find your message below with Command and F (macOS) or Ctrl and F. If it is not here, the build message itself says what to do.

In plain words

When something goes wrong, HERON tries to say three things: where (file and line), what is wrong, and what to do. Read the message to the end before searching: the last line is usually the fix.

Problems come from three places. Docker (it does not start, it cannot open a port). Your files (a missing quote, a page in the wrong folder, a photo that is not there). Publishing (the site did not update, the domain does not open). The sections below follow that order.

When you need this page: when a command fails or the site looks wrong. When you can skip it: when it all works.

Docker and the terminal

Pages and files

Build error codes

An error stops the build. The message starts with the code, then the file and the line.

CodeWhat it meansWhat to do
E001The settings block at the top of a page is brokenCheck quotes, colons and the three dashes at the top and bottom of the block
E002title, h1 or description is missing, or a field has the wrong kind of valueFill the field; a date as 2026-10-19, order as a number
E003Two sections in one file have the same anchorRename one {#anchor}
E004Two files give the same addressRename a file or change its slug
E005A file name or slug has spaces, capitals or other lettersUse small Latin letters, digits and dashes
E006A link field points to a page that does not existCheck the page key
E007A photo is mentioned but the file is not in media/Check the file name and folder, including capital letters
E008The theme has no template for this page typeCheck type in the page or ask the theme author
E009An old address in redirect_from is the address of a living pageRemove it from the list
E010The theme asks for a value that does not existA theme problem: tell its author, with the message
E011site.yaml has a mistakeRead the line given in the message; often an indent or a missing quote
E012The HERON version does not fit the heron: line in site.yamlUpdate HERON or change the line on purpose
E013The theme in site.yaml is not foundCheck the theme name and the theme/ folder
E014A plugin from plugins: is not installed or failedInstall it or remove it from the list
E015HTML tags in a pageRewrite with Markdown and section forms
E016A section anchor has forbidden charactersSmall Latin letters, digits and dashes in {#anchor}
E017The final build has no pages at allCheck the content/ folder
E018Photos are in two folders at onceKeep them only in media/
E019A video has no poster pictureAdd a poster image for the video
E020Structured data for search engines cannot be builtFill the address or other fields the message names in site.yaml
E021The main language has no pagesAdd pages to the folder of the main language
E022A removed address in gone belongs to a living pageRemove it from gone
E023The theme names fields HERON does not knowA theme problem: tell its author

Warnings in the final build

The final build (--strict) stops on warnings too. The usual ones:

  • title longer than 60 characters, description longer than 155. Shorten them: search engines cut longer ones.
  • link … leads nowhere. A link in the text points to a page that does not exist. Check the address or write the page key, for example /get-started/.
  • page exists in one language only. Add the translation, or accept that the link leads to the other language.
  • section the theme does not use. Usually a typo in the anchor.

The full list is saved in .heron-cache/warnings.txt next to dist/.

Publishing

The build on GitHub failed or is still running.

  • Look. The Actions tab of the repository: a yellow dot is running, a red cross failed. Click it to see the same message as in your terminal.
  • Fix and push again. Fix the file, then git add . && git commit -m "Fix" && git push.
  • Browser cache. Refresh with Shift held down.

GitHub does not accept your account password in the terminal.

  • Fix. Paste a token as the password. How to create one: Git and GitHub.
  • Expired token. Create a new one; the old one cannot be extended.

DNS or the certificate is not ready.

  • Wait. New DNS records take minutes, sometimes a few hours.
  • Check the records. They must match your hosting exactly: see Your domain.
  • HTTPS. On GitHub Pages tick Enforce HTTPS when it becomes available; on a server run certbot again.

Still stuck?

Copy the whole message from the terminal, including the lines above the error, and open an issue on GitHub. Say which system you use and which command you ran. An AI assistant can also read the message and the documentation with you.