Skip to main content
orphan · gcp

Vertex AI Model Registry models with no deployment that still carry a billed cost

resource types
1
rule IDs covered
1
severity
low

What does ZopNight detect here?

Vertex AI Model Registry entries cost nothing on their own, but a model with no deployment can still carry billed cost for its stored artifacts. ZopNight flags models whose deployed model count is 0 and a real cost is attributed to them, reports that full cost as the saving from deleting, and never reports a $0 finding.

Signal and threshold

How ZopNight evaluates Vertex AI Model Registry models with no deployment that still carry a billed cost.
Field Value
Rule IDsRC-1214
Categoryorphan
Severitylow
Metricnone — pure configuration read
Threshold0 deployments and billed cost above $0
SourceZopNight
Permissions usedaiplatform.models.list · aiplatform.models.get · aiplatform.endpoints.list

What an undeployed model can still cost

Vertex AI pricing is clear that “there is no cost associated with having your models in the Model Registry”; cost starts when you deploy a model to an endpoint or run batch prediction. The registry entry is free, but it is rarely alone. A model points at artifacts, and those files sit in Cloud Storage where they are billed like any other object.

So the question this rule asks is narrow: is there a model nobody has deployed that still has a real cost attached to it? Old training runs, abandoned experiments and superseded versions are the usual answer.

Seeing which models are deployed

List the models in a region, then list the endpoints to see what is actually serving:

Terminal window
gcloud ai models list --region=us-central1
gcloud ai endpoints list --region=us-central1

A model that appears in the first list but is not deployed to any endpoint in the second is a candidate. Check each model’s artifact location in the console before deciding.

The two facts that must line up

ZopNight fires when the model’s deployed model count, read live from the Vertex AI API, is exactly 0, and when a billed monthly cost above zero is attributed to that model. Both are needed; an undeployed model with no cost does not produce a finding.

Where the rule holds back

No cost figure, no finding: ZopNight does not report $0 recommendations and does not estimate artifact storage it cannot see billed. There is also no minimum age. The Model resource carries no record of when it was last undeployed, so a model uploaded moments ago and not yet deployed can appear. That is the main reason to review the list before deleting anything.

Counting the billed cost as the saving

Terminal window
saving = billed monthly cost attributed to the model
cost after fix = 0

Deleting the model is the lever. If the artifacts live in a bucket you manage, delete or lifecycle those objects too, or the storage keeps billing.

Removing a model you no longer need

  1. Confirm the model version is not pending deployment or referenced by a pipeline.
  2. Export or copy the artifact if it may be needed again.
  3. Delete it from the registry: gcloud ai models delete MODEL_ID --region=us-central1. Per Google’s delete guide, a deployed model must be undeployed first, and deleting a model deletes all its versions and evaluations.
  4. Clean up the artifact objects in Cloud Storage if nothing else uses them.

See it fire on your bill.

Connect an account read-only. The first findings land in minutes.

472 rule families across 353 resource types on 22 platforms. Every threshold, metric, and IAM action is documented on these pages before you grant anything.

472 rule families documented
353 resource types covered
read-only default access level
Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console· Multi-cloud automation· Production-ready in 30 min· SOC 2 · ISO 27001· 20–60% off the bill, first month· 4 platforms · 1 console·