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 rollout 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.
# 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 (triggers rolling release automatically)
vercel deploy --prod
# 3. Start the rolling release
vercel rolling-release start --dpl <deployment-url>
# 4. Monitor the rollout
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 rollout:
vercel rolling-release abort --dpl <deployment-url>
# 6. Complete the rollout (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:
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:
vercel rolling-release configure --cfg 'disable'Create a new production deployment. With rolling releases configured, the deployment won't immediately receive all traffic:
vercel deploy --prodSave the deployment URL from the output for use in the following steps.
Begin the rolling release to start shifting traffic to the new deployment:
vercel rolling-release start --dpl <deployment-url>This starts at the first stage (10% of traffic in the example configuration above).
Check the current stage, traffic split, and overall progress:
vercel rolling-release fetchWhile the rollout is in progress, monitor production logs for errors coming from the new deployment:
vercel logs --environment production --level error --since 5mTo filter for specific error patterns:
vercel logs --environment production --level error --query "TypeError" --since 5m --expandRun these checks periodically between stage transitions. If your stages have automatic durations, the rollout 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:
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 rollout to send 100% of traffic to the new deployment:
vercel rolling-release complete --dpl <deployment-url>Verify that production is healthy after the full rollout:
vercel logs --environment production --level error --since 5mIf you see a spike in errors during any stage, abort the rolling release immediately. This reverts all traffic back to the previous deployment:
vercel rolling-release abort --dpl <deployment-url>After aborting, investigate the errors and fix them before attempting another rollout:
vercel logs --environment production --level error --since 30m --expandWas this helpful?