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

# Limits

> Size, count, and render ceilings.

Some of these limits reject and some truncate. A rejection surfaces at publish;
a truncation is silent at render.

## Bundle

Enforced twice, once while reading the archive and again on the extracted set.

| Limit           | Value          |
| --------------- | -------------- |
| Files per theme | 2,000          |
| Bytes per file  | 10 MiB         |
| Total bundle    | 50 MiB         |
| Path length     | 300 characters |
| Upload body     | 64 MiB         |

All of these reject the publish and name the file.

<Note>
  Per-plan bundle sizes appear in some pricing material. They are not enforced.
  Every plan gets the same 50 MiB ceiling today.
</Note>

## Path rules

A path must be non-empty and at most 300 characters, must not be absolute,
contain a backslash, contain `//` or end in `/`, must have no segment that is
empty, `.`, `..` or starts with `~`, and must be printable ASCII or spaces only.

Anything under a dot-directory is dropped before the rules are applied, so
`.git`, `.github` and `.gitignore` never reach a bundle.

## Per store

| Limit                      | Default | Notes                                                  |
| -------------------------- | ------- | ------------------------------------------------------ |
| Themes installed           | 25      | Also capped by the merchant's plan, whichever is lower |
| Overridden files per theme | 500     | Files the merchant edited in the builder               |
| Override bytes per theme   | 25 MB   | Counted by content, so shared blobs count once         |

Hitting the plan cap returns a payment-required error naming the plan:

```
theme library is full (5 themes on the free plan). Upgrade to install more.
```

## Sections and blocks

| Limit               | Value                             | On exceeding           |
| ------------------- | --------------------------------- | ---------------------- |
| Sections per page   | 500                               | Draft save rejected    |
| Draft nesting depth | 64                                | Draft save rejected    |
| Page path length    | 200                               | Draft save rejected    |
| Blocks per type     | The schema's `max`, otherwise 200 | **Silently truncated** |
| Block nesting depth | 64                                | Deeper blocks dropped  |

<Warning>
  The 200-blocks-per-type ceiling applies when the schema declares no `max`, and
  it truncates without a message. A merchant who adds 250 blocks sees 200 render
  and no error. Declare an explicit `max`.
</Warning>

## Render

These come from Slurp and apply to every render. See
[Limits](/slurp/troubleshooting/limits) for detail.

| Limit                       | Value     | On exceeding                          |
| --------------------------- | --------- | ------------------------------------- |
| Iterations per loop         | 1,000     | Truncated, with a diagnostic          |
| Total iterations per render | 1,000,000 | Loops stop emitting                   |
| Render depth                | 96        | Subtree renders empty, one diagnostic |
| Parser nesting depth        | 64        | Parse error                           |
| Single filter value         | 8 MiB     | Render error                          |
| Total output                | 16 MiB    | Render error                          |

A section that exceeds its budget fails the whole page rather than disappearing
from it. A page silently missing one section is diagnosed as a content problem.

## Publish

| Limit                 | Value                     |
| --------------------- | ------------------------- |
| Template parse budget | 10 seconds per file       |
| Auto-version retries  | 3                         |
| Git deploy debounce   | 10 seconds per repository |

Exceeding the parse budget produces:

```
{path}: template could not be compiled safely (timeout) - it exceeded the
publish budget. This usually means the file triggers a compiler bug; simplify
it and report the file.
```

## Propagation

Store configuration is cached, so a published theme becomes visible to buyers
within about 60 seconds.

The builder preview is uncached and updates immediately. For the first minute
after a publish, the preview reflecting a change the live store does not is
expected.
