First deployment of a fresh no-Git project cannot be guaranteed as Preview

Vercel CLI: 58.0.0
Node.js: 24.18.0
Plan: Hobby
Framework Preset: Next.js

The project is newly created and currently has:

  • no Git integration
  • no deployment history
  • no domains
  • no aliases
  • no environment variables

Our release policy prohibits creating any Production-target deployment at any time.

We need the first deployment to be classified strictly as Preview.

Vercel issue #17069 reports that the first CLI deployment of a fresh no-Git project may be classified as Production even when --target=preview is supplied.

The Vercel Support Agent stated that:

  1. A minimal placeholder first deployment would still initialize the project as Production.
  2. --skip-domain would prevent domain assignment but would still record the deployment target as Production.

Neither workaround satisfies our policy.

Questions:

  1. Is Vercel CLI 58.0.0 still affected by issue #17069?
  2. Is there any supported workflow that guarantees the first deployment of a fresh no-Git project is classified as Preview?
  3. Would connecting a Git repository and deploying only a non-production branch guarantee that no Production-target deployment is created?
  4. If no such workflow exists, can Vercel confirm that a Preview-only first deployment is currently impossible for a fresh no-Git project?

Hi Zangyj1971,

I don’t think another community member can reliably confirm whether CLI issue #17069 is still present in 58.0.0, but you can separate the documented workflow from the suspected bug pretty cleanly.

The documented CLI behavior is that a normal CLI deploy without --prod should create a Preview deployment, while --prod creates Production. So for a fresh linked project, the safest thing to test is:

vercel deploy --target=preview --logs
vercel inspect <deployment-url>

Then check the inspected deployment’s environment/target before using it in any release flow.

For Git, Vercel treats the configured production branch as Production and other branches as Preview by default. So connecting Git and making sure the first pushed branch is not the configured production branch should be the safer supported workflow, but I’d still verify the first deployment in the dashboard or with vercel inspect before treating that as a compliance guarantee.

The relevant docs are here:

Given your policy says “no Production-target deployment at any time,” I would avoid relying on placeholder deployments or --skip-domain; those can avoid assigning traffic/domains, but they are not the same as proving the deployment target was Preview.