Limits
Bundle, render, schema and settings-document limits in one place.
This page owns every number that concerns themes; other pages link here instead of repeating them.
Bundle#
| Limit | Value |
|---|---|
| Total uncompressed size | 5 MB |
| Single file size | 1 MB |
| File count | 400 |
| Path length | 200 characters |
| Extensions | .liquid .json .css .svg .png .jpg .jpeg .webp .woff2 |
| Push / remote-check request body | 8 MB (the bundle base64-encoded) |
Render#
| Limit | Value |
|---|---|
| Engine work per page | 1,500 ms |
| Hard overall timeout (worker kill) | 3,000 ms |
| Single template size at parse | 512 KB |
| Engine memory per render | 32 MB |
| Page output size | 1 MB |
Exceeding any limit fails the render and the platform serves the default storefront for that path. The failure code (timeout, output_cap, …) surfaces in the remote check.
Settings schema#
| Limit | Value |
|---|---|
| Groups | 30 |
| Settings per group, section or block | 60 |
| Section types | 40 |
| Block types per section | 20 |
select options |
50 |
| Id length | 64 characters |
Label and info length |
200 characters |
| Default string length | 5,000 characters |
enabled_on |
1–4 pages |
Settings document#
| Limit | Value |
|---|---|
| Merchant-typed text per setting | 5,000 characters |
richtext |
10,000 characters after sanitizing |
| Section instances per page | 30 |
| Blocks per instance | 20 |
translations.en entries |
300 |
| Section source products | per limit/count; __requires.products up to 12 |
Context#
| Limit | Value |
|---|---|
available_quantity is exposed when remaining stock is |
≤ 5 |
img_url width ladder |
96, 128, 200, 400, 600, 800, 1200, 1600 |
CLI and API#
| Limit | Value |
|---|---|
| Theme API requests per CLI token | 120 per minute |
Preview link from theme dev |
24 hours, revoked when the draft changes |
Theme name in theme push --name |
80 characters |
Device code in login |
10 minutes, polled every 5 seconds, at most 200 polls |