Home / AI & GenAI

AI & GenAIRunbookIntermediate

Sev1: Azure AI Search index is full. Indexers fail and new documents never appear

Indexer runs fail with storage or quota errors, vector uploads are rejected, and the RAG assistant stops learning new content. Confirm which limit you hit (total storage, vector index size or document count), buy time, then add partitions, shrink the vector footprint or move to a bigger tier.

Deepak Bhardwaj3 min read

Applies toAzure AI Search (Basic, Standard S1–S3, Storage Optimized L1/L2); limits differ by tier and service creation date, so check current service limits

Symptoms

  • Indexer execution history shows errors like "Index quota has been exceeded" or storage/vector quota messages.
  • Push API uploads return 4xx errors for new documents.
  • Newest documents are missing from search; older ones still work.

Step 1: which limit?

curl -s "https://srch-prod.search.windows.net/servicestats?api-version=2024-07-01" -H "api-key: $ADMIN_KEY" | jq

The response shows usage and quota for counters such as storageSize, vectorIndexSize, documentCount and indexesCount.

Per index:

curl -s "https://srch-prod.search.windows.net/indexes/kb-v12/stats?api-version=2024-07-01" -H "api-key: $ADMIN_KEY"
# documentCount, storageSize, vectorIndexSize
Limit reached Typical cause
vectorIndexSize Many chunks × large dimensions; vector quota is a fraction of total storage per partition
storageSize Big text fields stored/retrievable, many duplicate chunks, old index versions kept
indexesCount Blue/green indexes never deleted

Step 2: buy time (minutes)

  • Delete old index versions you no longer need (after confirming nothing points to them):
curl -X DELETE "https://srch-prod.search.windows.net/indexes/kb-v09?api-version=2024-07-01" -H "api-key: $ADMIN_KEY"
  • Pause ingestion of low-value sources.
  • Remove duplicate or obsolete documents (old versions of the same file).

Step 3: add capacity

Add partitions (storage scales with partitions; billing too):

az search service update -g rg-ai -n srch-prod --partition-count 2

Adding partitions takes time (from minutes to hours depending on data size) and the service stays online. Check the replica × partition limits for your tier.

Higher tier: if partitions are maxed out, move to a tier with more storage per partition. Depending on your service and region, an in-place tier change may be supported; otherwise create a new service and re-index. Check current docs.

Step 4: reduce the footprint

Technique Effect
Vector compression (scalar or binary quantization) in the vector profile Large reduction in vector index size; small recall loss, rescoring helps
Narrower vector types (Edm.Half, Collection(Edm.SByte)) Halves or quarters raw vector storage
stored: false on vector fields you never return Saves storage of the original vectors
Smaller embedding dimensions (models that support truncation) Fewer bytes per vector; requires re-embedding
Larger chunks / less overlap Fewer vectors; check retrieval quality
Don't store unneeded text fields as retrievable Less storage

Most of these need a new index (field definitions can't change in place). Build it alongside, validate retrieval, then switch.

Step 5: confirm

  • servicestats shows headroom (< 70% for the limiting counter).
  • Re-run failed indexers: POST /indexers/{name}/run.
  • Check the newest documents are searchable.

Warning

Blue/green index rebuilds temporarily need storage for two copies. Plan capacity for that, or the next rebuild hits the same wall.

Prevent it next time

  • Alert when storage or vector index usage passes 70% (Azure Monitor metrics or a scheduled servicestats check).
  • Forecast growth: documents per month × chunks per document × bytes per vector.
  • Compression and narrow vector types from day one.
  • Clean-up policy for old index versions.