---
title: Limits
description: Numeric limits and timeouts for serverlets, proxies, and DNS.
---

Technical limits and timeouts enforced by the platform. Most applications never hit these — they exist to keep the platform stable under load and to catch misbehaving configuration early.

## Serverlet

| Limit | Value |
| --- | --- |
| Max instances per serverlet | 1,000 |
| Max container image size | 3 GiB |
| Scale-to-zero cold start timeout | 20 seconds |
| Rolling update grace period | 10 seconds |

A request to a scaled-to-zero serverlet waits out the cold start timeout, then fails with `504 Gateway Timeout`. See [Scaling to zero](/docs/serverlet/#scaling-to-zero) and [rolling updates](/docs/serverlet/#rolling-updates).

## Proxy

### Request and response limits

| Limit | Value |
| --- | --- |
| Max request header size | 64 KB |
| Max response header size | 128 KB |
| Max size of a single header field | 32 KB |
| Max number of headers | 500 |

### Timeouts

| Timeout | Value |
| --- | --- |
| Connect timeout to backend | 10 seconds |
| Time waiting for backend to start responding | 30 seconds |
| Overall backend request timeout | 100 seconds |
| Idle connection timeout to backend | 90 seconds |
| Idle timeout on HTTP/3 (QUIC) connections | 30 seconds |
| Response write timeout | 30 seconds |

### Recursion

| Limit | Value |
| --- | --- |
| Max times a request can re-enter the platform | 3 |

Catches proxies that loop back into the platform, misconfigured directly or indirectly, with `508 Loop Detected`. A target resolving to the exact instance already handling the request is always blocked outright.

### Reserved headers

`Futrou-`-prefixed headers are reserved for platform use; rules can't add or modify them.

## Storage

| Limit | Value |
| --- | --- |
| Max size of a single storage | 256 GiB |
| Max size of a single `PUT` (or multipart part) via the S3/Storage API | 5 GiB |
| Max size of an object served in a single request via the S3/Storage API | 10 GiB |
| Max size of a single system metadata header value | 32 KB |
| Max combined size of an object's system metadata headers | 64 KB |
| Max size of an object's cached metadata (`.metadata` sidecar) | 96 KB |
| Max size of a single file when [mounted as a block device](/docs/storage/#mounting-into-serverlets) | ext4's own limit (16 TiB), bounded in practice by the storage's own size |

The header caps match the [proxy's own limits](#proxy). The 5 GiB and 10 GiB caps apply only to the S3/Storage API — a [mounted block device](/docs/storage/#mounting-into-serverlets) is bound only by ext4 and free space. A request over the single-object cap fails with `EntityTooLarge`; split it into a multipart upload instead. Neither HTTP API follows symlinks — only a mounted block device does.

## DNS

| Limit | Value |
| --- | --- |
| Max records per zone | 3,500 |
| Max zone size | 2 MiB |

Whichever of these two limits is reached first applies. See [DNS](/docs/dns/) for supported record types and zone management.