This page outlines all relevant limits and limitations present when using the Vercel platform.
To prevent abuse of our platform, we apply the following limits to all accounts.
Deployments Created per Day
Serverless Functions Created per Deployment
Serverless Function Execution Timeout (Seconds)
Proxied Request Timeout (Seconds)
Deployments Created from CLI per Week
Team Members per Team
Vercel Projects Connected per Git Repository
Rewrites per Project
Redirects per Project
Headers per Project
Build Time per Deployment (Minutes)
In the case of the "Serverless Functions Created per Deployment" limit, only dedicated Lambdas are counted as one Serverless Function. With Next.js, Vercel will automatically combine as many Serverless Functions as possible into a single Lambda, as mentioned in bundling serverless functions.
Up to 100 GB
Up to 1 TB
Serverless Function Execution
Up to 100 GB-Hrs
Up to 1000 GB-Hrs
Up to 100 Hrs
Up to 400 Hrs
Up to 1000 Images
Up to 5000 Images
For members of our Pro plan, we offer a pay-as-you-go model for overages, giving you greater flexibility and control over your usage. The typical monthly usage guidelines above are still applicable, while extra usage will be automatically charged at the following rates:
$55 per 100 GB increment
Serverless Function Execution
$55 per 100 GB-Hrs increment
$9 per 1000 increment
Check out this section for more details about the limits of the Analytics feature on Vercel.
The maximum duration of the Build Step is 45 minutes. When the limit is reached, the Build Step will be interrupted and the Deployment will fail.
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.
If you are using System Environment Variables, the framework-specific ones (i.e. those prefixed by the framework name) are exposed only during the Build Step, but not at runtime. However, the non-framework-specific ones are exposed at runtime. Only the Environment Variables that are exposed at runtime are counted towards the size limit.
If your build is failing due to the 4 KB limit, you can try the following 2 strategies:
- If System Environment Variables are not essential to your project, uncheck Automatically expose System Environment Variables in your Project Settings' Environment Variables page (Once inside your project, click on Settings and then Environment Variables in the sidebar navigation).
- If they are, follow this Support Article for a workaround.
The maximum number of domains that can be applied to a single project is
The maximum number of files that can be uploaded when creating a CLI Deployment is
15,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.
If your application will pre-render over
16,000 files at build time, then you should look to Incremental Static Regeneration (ISR) as a means to maximize performance. Using ISR will allow you pre-render a subset of the total number of pages at build time, giving you faster builds and the ability to scale.
The amount of time (in seconds) that a proxied request (
routes with an external destination) is allowed to process an HTTP request. The maximum timeout is 30 seconds.
If the external server does not reply until the maximum timeout is reached, an error with the message
ROUTER_EXTERNAL_TARGET_ERROR will be returned.
The Vercel platform does not currently support HTTP/2 Push.
Serverless Functions do not support WebSockets.
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
excludeFiles which may affect the function size, however the limits cannot be configured.
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.
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 5 seconds when deployed on a Personal Account (Hobby plan). For Teams, the execution timeout is 15 seconds (Pro plan) or 30 seconds (Enterprise plan).
For more information, see the Execution Timeout section.
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 a Serverless Function executes in excess of the limit it will return an error → 429: INTERNAL_FUNCTION_RATE_LIMIT.
If you require a limit above
1000, you should contact our sales team to discuss custom limits available on an Enterprise plan.
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.
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 Serverless Function returns the response payload, it stops processing including any pending background tasks.
Vercel does not support connecting your Personal Account's Projects to Git repositories owned by Git organizations. You can either switch to an existing Team or create a new one.
The same limitation applies in the Project Creation Flow when importing an existing Git repository or when cloning a Vercel template to a new Git repository as part of your Git organization.
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:
ownerrefers to the Personal Account Owner or Team Owner,
userrefers to a Team Member.
Below are five examples that provide further information on how rate limits work.
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.
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.
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.
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.
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.