Skip to content
Docs

Performing a rolling release deployment

Use this guide to gradually roll out a new production deployment using rolling releases. You'll configure traffic stages, monitor for errors between stages, and either complete the rolling release or abort if problems arise.

This guide requires a linked Vercel project. Run vercel link in your project directory if you haven't already. Rolling releases require a Pro or Enterprise plan.

Use this block when you already know what you're doing and want the full command sequence. Use the steps below for context and checks.

terminal
# 1. Configure rolling release stages
vercel rolling-release configure --cfg '{"enabled":true,"advancementType":"automatic","stages":[{"targetPercentage":10,"duration":5},{"targetPercentage":50,"duration":10},{"targetPercentage":100}]}'
 
# 2. Deploy to production (starts the rolling release automatically if the project auto-assigns custom domains)
vercel deploy --prod
 
# 3. Start the rolling release (idempotent if step 2 already started it)
vercel rolling-release start --dpl <deployment-url>
 
# 4. Monitor the release
vercel rolling-release fetch
vercel logs --environment production --level error --since 5m
 
# 5. Advance to the next stage (if manual approval is configured)
vercel rolling-release approve --dpl <deployment-url> --currentStageIndex 0
 
# IF errors spike during the release:
vercel rolling-release abort --dpl <deployment-url>
 
# 6. Complete the release (100% traffic)
vercel rolling-release complete --dpl <deployment-url>

Set up the traffic stages for your rolling release. Each stage defines what percentage of traffic goes to the new deployment and how long to wait before advancing:

terminal
vercel rolling-release configure --cfg '{"enabled":true,"advancementType":"automatic","stages":[{"targetPercentage":10,"duration":5},{"targetPercentage":50,"duration":10},{"targetPercentage":100}]}'

This configuration sends 10% of traffic to the new deployment for five minutes, then 50% for 10 minutes, then 100%. Adjust the percentages and durations based on your traffic volume and risk tolerance.

To disable rolling releases later:

terminal
vercel rolling-release configure --cfg 'disable'

Create a new production deployment. With rolling releases configured, the deployment won't immediately receive all traffic:

terminal
vercel deploy --prod

Save the deployment URL from the output for use in the following steps.

Begin the rolling release to start shifting traffic to the new deployment:

terminal
vercel rolling-release start --dpl <deployment-url>

This starts at the first stage (10% of traffic in the example configuration above). The start command is idempotent. If your project auto-assigns custom domains, the production deployment already started the rolling release, and this command returns its current state. See Starting and completing via the API.

To send 100% of traffic to the canary, run vercel rolling-release complete. See Starting and completing via the API.

Check the current stage, traffic split, and overall progress:

terminal
vercel rolling-release fetch

While the rolling release is in progress, monitor production logs for errors coming from the new deployment:

terminal
vercel logs --environment production --level error --since 5m

To filter for specific error patterns:

terminal
vercel logs --environment production --level error --query "TypeError" --since 5m --expand

Run these checks periodically between stage transitions. If your stages have automatic durations, the rolling release advances on its own. If you configured manual approval stages, you'll need to explicitly approve each one.

If your configuration includes stages that require manual approval, advance to the next stage after confirming the current stage is healthy:

terminal
vercel rolling-release approve --dpl <deployment-url> --currentStageIndex <stage-index>

The --currentStageIndex flag specifies which stage you're approving. Stage indexes start at 0.

After all stages pass, complete the rolling release to send 100% of traffic to the new deployment:

terminal
vercel rolling-release complete --dpl <deployment-url>

Verify that production is healthy after the full rolling release:

terminal
vercel logs --environment production --level error --since 5m

If you see a spike in errors during any stage, abort the rolling release immediately. This reverts all traffic back to the previous deployment:

terminal
vercel rolling-release abort --dpl <deployment-url>

After aborting, investigate the errors and fix them before attempting another rolling release:

terminal
vercel logs --environment production --level error --since 30m --expand
Last updated June 30, 2026

Was this helpful?

supported.