This page outlines all relevant limits and limitations present when using the Vercel platform.
General Limits
To prevent abuse of our platform, we apply the following limits to all accounts.
Hobby | Pro | Enterprise | |
---|---|---|---|
Deployments Created per Day | 100 | 3000 | Custom |
Serverless Functions Created per Deployment | 12 | 24 | Custom |
Serverless Functions Deployed per Month | 160 | 640 | Custom |
Serverless Function Execution Timeout (Seconds) | 10 | 60 | 900 |
Deployments Created from CLI per Week | 2000 | 2000 | Custom |
Team Members per Team | - | 10 | Custom |
Vercel Projects Connected per Git Repository | 3 | 10 | Custom |
Build Time per Deployment (Minutes. The build will fail when the limit is reached) | 45 | 45 | 45 |
General Limit Examples
Below are two examples that provide further information on how general limits work.
Serverless Functions per Deployment (Hobby)
You are able to deploy up to 12
unique Serverless Functions per Deployment. Should you exceed this general limit, you will receive an error telling you this.
Serverless Functions per Month (Hobby)
You are able to deploy a total of 160
unique Serverless Functions per month. For each Deployment, if a Serverless Function's code has changed since the last, it will detract 1 from the available limit as the function will need to be rebuilt. Should you exceed this general limit, you will need to wait till the current month ends before you can deploy more Serverless Functions.
Analytics
Check out this section for more details about the limits of the Analytics feature on Vercel.
Logs
All log types - Build Time, Edge Network, and Runtime - have differing behavior when it comes to storing logs.
During the Build Step, the last 2,000 log lines are stored and persisted.
For Edge Network requests, all logs are not persisted.
For Serverless Functions, only logs from failed requests are persisted.
All other logs are stored in memory only and are not persisted between page views. Each log output is limited to 4 KB. For log outputs greater than 4 KB per Serverless Function invocation, only the last 4 KB will be retained.
Environment Variables
The maximum number of Environment Variables per environment per Project
is 100
. For example, you cannot have more than 100
Production Environment Variables.
The total size of your Environment Variables, names and values, is limited to 4 KB per Environment per Project. This limitation is imposed by AWS Lambda and cannot be changed.
Domains
The maximum number of domains that can be applied to a single project is 50
. If your project requires more than 50
domains, please contact our sales team.
Files
The maximum number of files that can be uploaded when creating a Deployment is 10,000
for source files and 16,000
for build output files.
Deployments that contain more files than the limit will fail at the build step.
HTTP/2 Push
The Vercel platform does not currently support HTTP/2 Push.
WebSockets
Serverless Functions do not support WebSockets.
We recommend third-party solutions to enable realtime communication for Deployments.
Serverless Function Size
The maximum size for a Serverless Function is 50 MB and the maximum unzipped size is 250 MB including layers which are automatically used depending on Runtimes. These limits are enforced by AWS to ensure you can't deploy Serverless Functions that take a long time to boot.
You can configure functions with includeFiles
and excludeFiles
which may affect the function size, however the limits cannot be configured.
Serverless Function Memory
The maximum memory size for a Serverless Function deployed on a Personal Account (Hobby plan) is 1024 MB. For Teams (Pro plan), it can be increased to up to 3008 MB.
You can use the functions property to adjust the memory size for each Serverless Function.
Serverless Function Execution Timeout
The amount of time (in seconds) that a Serverless Function is allowed to process an HTTP request before it must respond. The maximum execution timeout is 10 seconds when deployed on a Personal Account (Hobby plan). For Teams, the execution timeout is 60 seconds (Pro plan) or 900 seconds (Enterprise plan).
For more information, see the Execution Timeout section.
Serverless Function Concurrency
The maximum number of concurrent executions for Serverless Functions is 1000
by default. The concurrency limit is shared across all Projects deployed to a Team and can be observed with the usage of Log Drains.
If you require a limit above 1000
, you should contact our sales team to discuss custom limits available on an Enterprise plan.
Serverless Function Payload Size Limit
The maximum payload size for the request body or the response body of a Serverless Function is 5 MB.
If a Serverless Function receives a payload in excess of the limit it will return an error - 413: FUNCTION_PAYLOAD_TOO_LARGE.
Serverless Function Regions
It is possible to deploy Serverless Functions to multiple regions, however this featured is limited to Enterprise plans. See also the FAQ section for more details on the Pro plan.
When attempting to deploy Serverless Functions to multiple regions on a non-Enterprise plan, the Deployment will fail before entering the build step.
Streaming Responses
Vercel does not support streaming responses from Serverless Functions due to an upstream limitation from AWS.
This means that background tasks, also known as "fire-and-forget" is not supported. Once the Severless Function returns the response payload, it stops processing including any pending background tasks.
Reserved Variables
The following Environment Variable names are reserved and therefore unavailable for use:
AWS_REGION
AWS_DEFAULT_REGION
AWS_ACCESS_KEY_ID
AWS_SECRET_KEY
AWS_SECRET_ACCESS_KEY
AWS_EXECUTION_ENV
AWS_LAMBDA_LOG_GROUP_NAME
AWS_LAMBDA_LOG_STREAM_NAME
AWS_LAMBDA_FUNCTION_NAME
AWS_LAMBDA_FUNCTION_MEMORY_SIZE
AWS_LAMBDA_FUNCTION_VERSION
AWS_SESSION_TOKEN
NOW_REGION
TZ
LAMBDA_TASK_ROOT
LAMBDA_RUNTIME_DIR
Rate Limits
Rate limits are hard limits that apply to the platform when performing actions that require a response from our API.
The rate limits table consists of the following four columns:
- Description - A brief summary of the limit which, where relevant, will advise what type of plan it applies to.
- Limit - The amount of actions permitted within the amount of time (Duration) specified.
- Duration - The amount of time (seconds) in which you can perform the specified amount of actions. Once a rate limit is hit, it will be reset after the Duration has expired.
- Scope - Who the limit applies to:
owner
refers to the account owner,user
refers to an individual user on a Team account.
Rate Limit Examples
Below are five examples that provide further information on how rate limits work.
Domain Deletion
You are able to delete up to 60
domains every 60
seconds (1 minute). Should you hit the rate limit, you will need to wait another minute before you can delete another domain.
Team Deletion
You are able to delete up to 20
teams every 3600
seconds (1 hour). Should you hit the rate limit, you will need to wait another hour before you can delete another team.
Username Change
You are able to change your username up to 6
times every 604800
seconds (1 week). Should you hit the rate limit, you will need to wait another week before you can change your username again.
Builds per Hour (Free)
You are able to build 32
Deployments every 3600
seconds (1 hour). Should you hit the rate limit, you will need to wait another hour before you can build a deployment again.
Deployments per day (Free)
You are able to deploy 100
times every 86400
seconds (1 day). Should you hit the rate limit, you will need to wait another day before you can deploy again.