Deployments stuck in readySubstate: STAGED, promotedAt: null

Hobby plan, CLI-only deploys (no Git integration), gtd-app project.

Confirmed via direct Vercel REST API queries:

  • Every deployment shows readySubstate: STAGED, promotedAt: null, despite target: production
  • Identical result on both vercel deploy --prebuilt --prod and full vercel --prod
  • .vercel/output/config.json correctly includes the crons block every build — not a config issue
  • Domain is aliased and serves the site correctly (via manual vercel alias), but doesn’t appear in the deployment’s own alias/automaticAliases list
  • Dashboard’s “Promote to Production” option is disabled, tooltip says “This Deployment is already in Production” — directly contradicting the API’s promotedAt: null
  • Cron Jobs page shows zero registered jobs; the cron config’s stored deploymentId still points to a deployment from months ago

Has anyone seen this — a deployment permanently stuck in STAGED with promotion blocked by the dashboard itself, unrelated to any known platform incident?