Limits
Some limits are monthly amounts, covered in Plans. The ones below apply on the spot, on every plan.
Builds
| Free | Standard | Pro | Platform | Enterprise | |
|---|---|---|---|---|---|
| Build timeout | 10 min | 20 min | 30 min | 15 min | 45 min |
| Concurrent builds | 1 | 2 | 4 | 10 | 10 |
| Queued builds | 3 | 10 | 25 | 100 | 100 |
| Deployments / day | 10 | Unlimited | Unlimited | Unlimited | Unlimited |
| Build machines | standard-1 | standard-1, standard-2 | standard-1, standard-2, standard-3 | standard-1, standard-2, standard-3, standard-4 | standard-1, standard-2, standard-3, standard-4 |
- A build past its timeout fails.
- Builds past the concurrent builds wait in the build queue; past the queued builds, a new one is refused.
- Deployments per day only limits Free.
- A CLI upload is limited to 25 MB. See Ignoring files.
Projects and environments
| Free | Standard | Pro | Platform | Enterprise | |
|---|---|---|---|---|---|
| New projects / hour | 5 | 30 | 60 | 1,000 | 120 |
| Environments per project | 1 | 2 | 3 | 1 | 12 |
| Deployments kept for rollback | 3 | 30 | 100 | 5 | 500 |
- Creating projects past the hourly rate is refused with HTTP
429and aRetry-Afterheader. - Environments per project is a hard limit on every plan.
- Only the most recent successful deployments can be rolled back to.
Each request
Each request your code handles has a budget, set by your plan:
| Free | Standard | Pro | Platform | Enterprise | |
|---|---|---|---|---|---|
| CPU per request | 15 ms | 30 ms | 50 ms | 50 ms | 50 ms |
| Subrequests per request | 10 | 50 | 50 | 50 | 50 |
- CPU per request: the time your code may spend computing for one request. Waiting on I/O doesn't count.
- Subrequests per request: the number of
fetchcalls your code may make while handling one request.
A request over either fails with an error, and your code can't catch it. Static files aren't affected.
Environment variables
- Keys: uppercase letters, digits and underscores, not starting with a digit.
- Values: up to 4,096 characters.
When a limit refuses something
The API answers HTTP 402 with a message naming the limit and what raises it; the CLI and the dashboard show that message. Rate limits answer 429.