This page outlines all relevant limits and limitations present when using the ZEIT Now platform.
This section highlights two areas relating to pricing plans, Usage Allowances, and Plan Limits.
Usage Allowances are the maximum limits provided by each pricing plan. They specify a limit for the amount of resources available for use under that plan before deployments are blocked (Hobby plan) or additional costs are incurred.
Build Time (Hours)
Execution Time (Hours)
Plan Limits are limitations that apply to specific plans that cannot be increased, the only way to do so is to upgrade to a higher tier pricing plan.
Deployments (per day)
Execution Duration (Seconds)
Serverless Functions per Deployment
Serverless Functions per Month
All log types - Build Time, Edge Network, and Runtime - have differing behavior when it comes to storing logs.
During the Build Step, all logs 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 4kb. For log outputs greater than 4kb per Serverless Function invocation, only the last 4kb will be retained.
The total size of environment variables is limited to 4kb.
The maximum amount of domains that can be applied to a single project, either from the ZEIT Dashboard or by using the
alias key in a
now.json file is 50.
It is not possible to add more than 50 domains to a project using the ZEIT Dashboard.
The maximum number of files that can be uploaded when making a deployment is 10,000 for source files and 16,000 for build output files.
Deployments made that contain more files than the limit will fail at the build step.
The ZEIT Now platform does not currently support HTTP/2 Push.
Serverless Functions do not support WebSockets.
Instead of pushing data, you can intelligently fetch data on-demand. For example, the
zeit.co dashboard delivers real-time updates using SWR.
If you need persistent connections to push data to the client, consider using third party pub/sub services. See the Pusher Channels Guide for an example.
For security reasons, the ZEIT Now platform blocks outgoing SMTP connections.
As a result of this, we recommend using a third-party service to enable email functionality for deployments.
The maximum size for a Serverless Function is 50 MB.
You can configure functions with
excludeFiles which may affect the function size, however the limit 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 maximum number of concurrent executions for a Serverless Function is
If you require a limit above
1000, you should contact our enterprise department 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 5MB.
If a Serverless Function receives a payload in excess of the limit it will return an error - 413: FUNCTION_PAYLOAD_TOO_LARGE.
When attempting to deploy Serverless Functions to multiple regions on the Hobby plan, the deployment will fail before entering the build step.
ZEIT Now does not support streaming responses from Serverless Functions due to an upstream limitation from AWS.
The following environment variable names are reserved and therefore unavailable for use:
Rate limits are hard limits that apply to the platform when performing actions that require a response from an 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 account owner,
userrefers to an individual user on a Team account.
Below are three examples that provide further information on how the rate limits work.
Taking the domains deletion rate limit as an example, you are allowed 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 deleting another domain.
With the team deletion rate limit, 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 deleting another team.
For the username update rate limit, 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 changing your username again.