Help › Validation codes
Validation codes
Your file is checked when you upload it. Findings have a code, a line number, a message and a suggestion.
- E codes are errors. The upload is refused until you fix them.
- W codes are warnings. The book is still made, and the warnings are shown on the progress page.
- I codes are notes. They tell you what was decided for you.
| Code | Kind | Meaning |
|---|---|---|
| E001 | Error | File is empty |
| E002 | Error | File is not valid UTF-8 text |
| E003 | Error | No Markdown file in the upload |
| E004 | Error | The zip cannot be used |
| E005 | Error | Code block opened and never closed |
| E006 | Error | Book is over the page or word limit |
| E007 | Error | A conversion tool failed or timed out |
| E008 | Error | Front matter opened and never closed |
| E009 | Error | Front matter but no content |
| E010 | Error | Image not found |
| E011 | Error | File name has no number |
| E012 | Error | Two files share a number |
| E013 | Error | Markdown files in different folders |
| E014 | Error | File type not accepted |
| W101 | Warning | Image not included (relative path or data: image) |
| W102 | Warning | Heading level skipped |
| W103 | Warning | Link to a heading that does not exist |
| W104 | Warning | Table row has the wrong number of columns |
| W105 | Warning | No headings |
| W106 | Warning | Repeated heading |
| W107 | Warning | Raw HTML removed |
| W108 | Warning | Heading has no text |
| W109 | Warning | Front matter in a later file is ignored |
| I201 | Note | Title taken from the file name |
| I202 | Note | Text before the first heading used as introduction |
Errors
E001 File is empty
The file has no content, or only blank lines. Add your text and upload again.
E002 File is not valid UTF-8 text
The file is saved in another encoding, or contains binary data. Open it in your editor and save it as UTF-8. In most editors this is under Save as or Encoding.
E003 No Markdown file in the upload
The upload has no file ending in .md (or the zip has none). Add your Markdown files, either at the top level of the zip or together in one folder.
E004 The zip cannot be used
The zip is damaged, encrypted, too large when unpacked, or contains an unsafe path or a link. Create the zip again from your folder without links, and keep it within the size limit.
E005 Code block never closed
A line with three backticks (or three tildes) opened a code block, and no matching line closed it. Everything after it would become code. The finding shows the line where the block opened.
Fix: add a closing line of three backticks after the code.
```python
print("hello")
```
E006 Book is over the limit
PDF books are limited by page count, and the other formats by word count. The limits are on the limits page. Split the book into parts. This error appears on the progress page after conversion, not at upload.
E007 A conversion tool failed
Pandoc or Typst failed or took too long. Check the message on the progress page. Very large tables, or extremely long lines of code, are the usual cause. If it keeps happening with a normal file, contact us.
E008 Front matter never closed
The file starts with --- on line 1, which opens a front matter block, but no second --- line closes it.
---
title: My Book
author: Me
---
Close the block, or delete the opening line if you did not mean to write front matter.
E009 Front matter but no content
After the front matter there is no text. Add your chapters below it.
E010 Image not found
An image with an https:// link could not be downloaded when the book was built, so no book was made. The message names the link, the line, and the reason, for example the server says the image does not exist (404) or access was refused. Every image that failed is listed.
Images in a zip are checked at upload: an image path that is not in the zip (or has different capital letters) is also reported here, with the file name and line. Capital letters matter, so Images/A.PNG is not images/a.png.
Fix: open the link in a private browser window. If it does not show the image there, MarkdownBooks cannot load it either. The image must be public and a PNG, JPEG, GIF or WebP file under 10 MB. Both Markdown images and <img> tags are downloaded:

<img width="1536" height="1024" alt="image" src="https://github.com/user-attachments/assets/0fc8d24e-3bf2-4631-8d1f-6bf4513bb5e3" />
Links to private networks, such as localhost or internal addresses, are refused. A book can have up to 100 images.
E011 File name has no number
When you upload several Markdown files, each name must start with a number (followed by -, _, or .), so the order is clear: 01-intro.md, 1.intro.md, 02-setup.md, 03-usage.md. Files are joined in order of that number. The message names the file that needs renaming.
E012 Two files share a number
Two files start with the same number, for example 01-a.md and 01-b.md, so their order is unclear. Give each its own number.
E013 Markdown files in different folders
The .md files are in more than one folder. Put them all in one folder. Images can stay in any folder.
E014 File type not accepted
You can upload .md files, or one .zip, not both together. Put everything in the zip, or upload only the Markdown files. Other file types (for example .docx or .txt) are not accepted.
Warnings
W101 Image not included
The image could not be included, so it is replaced by its alt text. This happens for relative paths such as images/a.png (only one Markdown file is uploaded, so the file cannot be found) and for data: images. Use a public https:// link instead, and the image is downloaded and placed in your book. Write alt text that describes the image either way:

W102 Heading level skipped
A heading jumps more than one level, for example # followed by ###. Use ## in between, or change the level.
W103 Link to a missing heading
A link such as [see](#setup) points to a heading that is not in the file. The target is the heading text in lower case, with spaces turned into dashes: ## Set up is #set-up.
W104 Table row has the wrong number of columns
A row has more or fewer cells than the header. Add or remove cells so every row matches.
W105 No headings
The file has no # headings, so the whole book is one chapter and there is no contents page. Add a # heading for each chapter.
W106 Repeated heading
Two headings have the same text. The second is renamed automatically, so links to it may not go where you expect. Give each heading its own title.
W107 Raw HTML removed
The file contains HTML tags such as <div> or <b>. They are not supported and are removed. Use Markdown instead: **bold** rather than <b>bold</b>. HTML comments are allowed.
W108 Heading has no text
A line has # marks and nothing after them. Add a title or delete the line.
Notes
W109 Front matter in a later file is ignored
Only the first file's front matter (title, author, date) is used. A later file has its own front matter block, which is skipped. Remove it from that file.
I201 Title taken from the file name
There is no title in the front matter and no # heading. The file name was used. Add a title in the front matter to control it.
I202 Text before the first heading
Text before the first heading is used as an introduction at the start of the book.
Something unclear? Tell us and we will improve this guide.