# GCP Vertex AI Vector Search Index Not Deployed

> Vector Search bills index builds and updates per GiB as one-time operations and serving per node-hour only while deployed, so an undeployed index has a $0 standing rate. ZopNight surfaces one only when billing attributed recent build spend to it. The figure reflects event-driven charges, not a recurring monthly bill.

Source: https://zop.dev/integrations/gcp/recommendations/gcp-vertex-ai-vector-search-index-not-deployed
Updated: 2026-08-19

---

## An orphan with no standing rate

Vector Search's billing shape is unusual: building or updating an index is a one-time
per-GiB operation, and the recurring node-hour charges belong entirely to the
IndexEndpoint it serves from. An index sitting undeployed (the discoverer's `isDeployed`
flag recorded as false) therefore costs $0 per month just to exist. That makes this a
different kind of orphan from an unattached disk: the waste is not a meter running today
but money already spent on builds feeding nothing, and money that will be spent again on
update pipelines that keep refreshing an index nobody queries.

## Why the shown dollars are event-driven

The figure attached to a flagged index is spend that GCP billing export attributed to
that index's UID, in practice recent build and update operations. Read it as "what this
index cost to maintain lately", not as a charge that deletion stops permanently. If an
automated pipeline is still updating the index, deleting the index and stopping the
pipeline ends a genuinely recurring waste stream.

## Verify deployment state

```bash
gcloud ai indexes describe INDEX_ID --region us-central1 \
  --format="value(displayName,deployedIndexes)"
```

An empty `deployedIndexes` list is the exact gate. Indexes are discovered by a live
`aiplatform` REST poller (Cloud Asset Inventory does not index them), under permissions
in `roles/aiplatform.viewer`.

## Rebuild cost is the real waste

Before deleting, weigh the rebuild: reconstructing a large index later costs its full
per-GiB build price plus pipeline time. If redeployment is plausible within the quarter,
undeploying nothing and simply pausing the update pipeline may be the cheaper reversible
move. If the embedding model that produced the vectors has changed anyway, the index is
already stale and deletion is free of regret.

## When it stays quiet

The rule abstains for any index whose `isDeployed` flag is absent or true, and for
indexes with no billing-attributed spend; a $0 orphan generates no recommendation. No
minimum-age gate exists yet, because GCP's Index resource records no last-undeployed
timestamp; a just-built index awaiting its first deployment can briefly match, which is
why the remediation starts with "confirm it is not awaiting deployment".
