> ## Documentation Index
> Fetch the complete documentation index at: https://www.usenotra.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Limits and build errors

> Size and build limits, and what the most common build errors mean.

These are the size and build limits for every site, followed by the build errors and warnings you're most likely to see.

## Limits

| Limit | Value |
| - | - |
| Build time | 10 minutes |
| Files in the site folder | 10,000 |
| Size of the site folder | 200 MB |
| Size of one file | 25 MB |
| Files in the built site | 20,000 |
| Size of the built site | 500 MB |
| Builds at the same time | 2 per site |
| Deployments per workspace | 300 per 24 hours |
| Restorable production deployments | The last 10, plus all from the last 24 hours |
| Redirect rules | 500 |
| Allowed origins | 32 |
| Inline scripts per site | 100 |

Builds run without network access, so a component can't fetch data while the site builds and has to fetch it in the browser with `useEffect` instead.

## Reading a failed build

A failed build lists every problem with its file, line and a code in three places, which are the **Diagnostics** of the deployment in Notra, the build log and annotations on the GitHub check. Warnings never stop a build.

## Common errors

| Code | Message | Fix |
| - | - | - |
| `config_json` | `blog.json is not valid JSON` | Look for a trailing comma or a missing quote at the reported line |
| `config_invalid` | `blog.layout: Invalid option: ...` | The setting has a value that isn't allowed, so check the [blog.json reference](/docs/sites/reference/blog-json) |
| `frontmatter_missing` | | The post must start with a `---` frontmatter block |
| `frontmatter_invalid` | `Frontmatter title: ...` | A required field is missing or has the wrong type. See [Posts](/docs/sites/posts) |
| `slug_invalid` | | File and folder names in `blog/` and `changelog/` may only use lowercase letters, digits and dashes |
| `slug_duplicate` | | Two files end up at the same URL, like `launch.mdx` and `launch/index.mdx` |
| `mdx_syntax` | `MDX syntax error: ...` | Usually an unclosed tag, an HTML comment or a stray `<` or `{`. See [MDX differs from Markdown](/docs/sites/components/overview#mdx-differs-from-markdown) |
| `unknown_component` | `Unknown component <X>` | Check the spelling (names are case-sensitive), or import the component from a snippet |
| `import` | `Cannot import "x": ...` | Imports must start with `/` or `./` and point to a file in your site, and Notra doesn't support npm packages |
| `component_import` | `Import components by name` | Use `import { Counter } from "/snippets/counter.jsx"` rather than a default import |
| `default_export` | `Default exports are not supported` | Use `export const Counter = ...` |
| `snippet_import` | `Snippets cannot import "x"` | A `.jsx` snippet can only import from `"react"`, so import every snippet in the MDX file |
| `forbidden_syntax` | `require() is not supported` and similar | Node.js APIs, `eval` and dynamic `import()` aren't available. See [Rules](/docs/sites/custom-components#rules) |
| `blocked_element` | `<script> is not allowed in content` | Move the script to `script.js`. See [Custom scripts](/docs/sites/analytics-and-scripts#custom-scripts) |
| `slot_unknown` | `Unknown slot "x"` | Rename the file to one of the [slot names](/docs/sites/match-your-website#slots) |
| `import_cycle` | `Import cycle: a → b → a` | MDX files import each other in a loop |
| `file_too_large` | `File is larger than 25 MB` | Compress the file or host it elsewhere |

The most common warnings are:

| Code | Meaning |
| - | - |
| `config_unknown_key` | A top-level setting in `blog.json` is unknown, and Notra ignores it |
| `variable_unknown` | A `{{ name }}` isn't defined in `variables`, and Notra shows it as written |
| `featured_unknown` | A path in `blog.featured` doesn't match a post |
| `no_entries` | There are no posts or changelog entries yet |
| `unsafe_filename` | A file name has characters that aren't allowed, and Notra skipped the file |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.