We are encountering an HTTP 409 when attempting to promote an already validated staged Production deployment, while Vercel's observable Production state still points to the previous deployment.
Production is currently healthy and serving live traffic. We do not want to rebuild the candidate or manually change aliases without understanding the inconsistent state.
Environment
Team: chef-control-ai Project: chefcontrol-manofica
Candidate deployment: dpl_Dp6Bt1abHm6xw4v2VnC281SSJfRX
Current healthy Production baseline: dpl_9ZWrh1fR5r6EqFi1KNyXFSXk9a68
Promotion attempt
Using Vercel CLI 59.16.0:
vercel promote dpl_Dp6Bt1abHm6xw4v2VnC281SSJfRX --scope chef-control-ai --yes
The command returned:
Error: The provided deploymentId (dpl_Dp6Bt1abHm6xw4v2VnC281SSJfRX) is already the current production deployment. (409)
We performed only this single promotion attempt.
Read-only state observed after the 409
- Candidate: target=production, READY, STAGED
- Baseline: target=production, READY, PROMOTED
- Project targets.production still points to the baseline
- Canonical chefcontrol-manofica.vercel.app still serves the baseline
- canary.haevim.com serves the candidate
- Automatic project alias chefcontrol-manofica-chef-control-ai.vercel.app serves the candidate
- No active promotion job was observed
Public HTTP behavior also shows that the canonical domain and canary are serving different deployments.
The candidate was intentionally built for Production and validated on the canary before promotion. We need to promote this exact validated deployment without rebuilding it.
After the 409 we have NOT:
- retried the promotion
- rebuilt the candidate
- manually reassigned aliases
- changed DNS
- changed project configuration
- modified the healthy Production deployment
Questions
-
Why can the promotion endpoint consider the candidate "already the current production deployment" while targets.production and the canonical Production domain still point to the baseline?
-
What is the supported procedure for reconciling this state and promoting this exact STAGED deployment without rebuilding it?
-
Can the automatic project alias pointing to the candidate affect the promotion validation that returns 409?
-
Is it safe to retry after a specific reconciliation step, or does this require Vercel-side state correction first?
We would prefer not to perform any destructive workaround or change the healthy Production deployment until the state discrepancy is understood.
Any guidance from the Vercel team on the correct supported recovery path would be greatly appreciated.