# Milvus Problems & Issues 2026 - OOM, Not Loaded & Errors

Source: https://www.tryorbye.com/products/milvus
Last analyzed: 2026-11-15
Try or Bye score: 68/100

## Verdict: Try with caution

Milvus works for some teams, but users report recurring problems (score 68/100). Most reported issues: Milvus query node runs out of memory when loading large collections; etcd and MinIO dependencies cause startup crashes; Search fails with 'collection not loaded' until you index and load. Not a good fit for: Small RAG apps under a million vectors; Windows-only local developers. Users most often switch to Pinecone, Weaviate, Qdrant.

## What it is

Milvus is an open-source vector database for similarity search over embeddings, with Milvus Lite, Standalone and distributed modes. Zilliz Cloud is the managed version. It suits teams building RAG and AI search at large scale who can run or pay for the infrastructure.

## Common errors & fixes

### How to Cancel Zilliz Cloud (Milvus) Subscription

Drop or suspend clusters from Cluster Details; Zilliz docs do not describe a refund policy on the pages we read.

1. **Suspend a Dedicated cluster** — Open Cluster Details > Actions > Suspend, type the cluster name Only storage charges apply while suspended (Zilliz docs)
2. **Drop a cluster** — Cluster Details > Actions > Drop and confirm Restore from the recycle bin within 30 days
3. **Marketplace subscribers** — Manage the subscription in AWS, Google Cloud or Azure; invoices come from them
4. **Check billing** — Payment order: credits, Advance Pay, then card or marketplace Cancellation and refund terms were not found on the Zilliz docs pages we read; ask Zilliz support

Full guide: https://www.tryorbye.com/products/milvus/issues/cancel

### Milvus "collection not loaded" Error

Search needs the collection loaded into memory first. Create a vector index, call load_collection, and confirm with get_load_state.

1. **Index then load** — Create an index on the vector field with create_index (AUTOINDEX is simplest) Run client.load_collection(collection_name=...) Check get_load_state reports loaded
2. **Check after restart** — Call get_load_state again after a restart Reload if it says NotLoad If load keeps failing, check query node logs and memory

Full guide: https://www.tryorbye.com/products/milvus/issues/collection-not-loaded

### Milvus Connection Refused / Timeout (19530)

The server is not running, not ready or the port is blocked. Start it, publish 19530 and wait until healthy.

1. **Check the server** — Run docker ps and confirm Milvus is up Inspect logs for etcd or storage errors
2. **Publish and open the port** — Run with -p 19530:19530 Open 19530 (gRPC) and optionally 9091 (HTTP) in the firewall
3. **Connect correctly** — MilvusClient(uri="http://localhost:19530") On Windows use Docker Desktop with WSL 2

Full guide: https://www.tryorbye.com/products/milvus/issues/connection-refused-timeout

### Milvus "field dimension mismatch" Error

The collection dim is fixed in the schema. Match it to your embedding model or recreate the collection.

1. **Match dim to model** — Check your model output size (for example 1536 for text-embedding-3-small, 384 for all-MiniLM-L6-v2) Create the collection with that dim
2. **Fix an existing wrong collection** — Drop the collection (data is lost) Recreate with the right dim, rebuild index, load, re-ingest
3. **Avoid it later** — Use one collection per embedding model

Full guide: https://www.tryorbye.com/products/milvus/issues/dimension-mismatch

### Milvus Search Returns Empty Results After Insert

New rows sit in growing segments. Flush after a bulk load or use Strong or Session consistency.

1. **Flush or change consistency** — Call client.flush() after bulk load Or search with consistency_level Strong or Session Do not flush after every single insert, it hurts throughput

Full guide: https://www.tryorbye.com/products/milvus/issues/empty-results-after-insert

### Milvus etcd and MinIO Dependency Errors

Slow or full etcd and object storage disks cause crash loops. Use fast disks, clear space and dedicate etcd storage.

1. **Check etcd disk speed** — Docs target over 500 IOPS and under 10 ms p99 fsync latency Test with fio using --fdatasync=1 Use local NVMe for etcd
2. **Clear a NOSPACE alarm** — etcdctl alarm list Compact and defragment etcd etcdctl alarm disarm
3. **Free disk** — Check host disk and MinIO console at :9001 Lower dataCoord.gc.dropTolerance to reclaim deleted data sooner

Full guide: https://www.tryorbye.com/products/milvus/issues/etcd-minio-errors

### Milvus "index not exist" Error

Milvus does not auto-create the vector index. Call create_index on the vector field, then load.

1. **Create the index** — client.create_index() on the vector field AUTOINDEX lets Milvus choose based on data size Then load_collection

Full guide: https://www.tryorbye.com/products/milvus/issues/index-not-exist

### Milvus Query Node Out of Memory (OOM)

Loading puts index and raw data in RAM. Cut memory by loading fewer fields, using a smaller index, releasing unused collections or adding query nodes.

1. **Reduce what is loaded** — Use load_fields to load only needed fields (beta, not recommended for production per docs) Set skip_load_dynamic_field if you do not use $meta keys Release collections you are not using
2. **Use a lighter index** — Move to IVF_SQ8 (third-party guide says about 4x less memory), IVF_PQ, or DISKANN for data larger than RAM Rebuild the index and reload
3. **Size Kubernetes resources** — Set resources.requests and limits for queryNode in the Helm values (docs example: 16Gi limit, 4Gi request) helm upgrade ... --reuse-values -f resources.yaml Add query nodes

Full guide: https://www.tryorbye.com/products/milvus/issues/query-node-out-of-memory

### Why Is Milvus Search Slow?

Slow search usually comes from search parameters, queueing, unindexed segments, filters or cold caches. Find the stage first, then tune.

1. **Locate the stage** — Check proxy, queue and execution latency in query node metrics (Milvus bottleneck guide)
2. **Tune parameters** — Tune ef or nprobe against a recall target, not maximum Split very large NQ requests
3. **Fix data layout** — Create indexes on filtered scalar fields Check segments are indexed Allow warm-up after restart; add query nodes

Full guide: https://www.tryorbye.com/products/milvus/issues/slow-search

## Common problems

- **Milvus query node runs out of memory when loading large collections** (performance): Loading puts index files and raw field data of a collection into memory, so collections bigger than query node RAM fail to load or get the node OOM-killed. GitHub issues describe a query node killed for excessive memory and loaded collections showing 0 afterwards.
- **etcd and MinIO dependencies cause startup crashes** (reliability): Milvus relies on etcd and object storage. Docs warn slow etcd disks cause frequent leader elections; users report standalone crash loops on 'mvcc: database space exceeded', lost etcd keepalive, and 'failed to open WAL' on full disks.
- **Search fails with 'collection not loaded' until you index and load** (usability): Milvus does not make a collection searchable on create. You must create a vector index and call load_collection first, which surprises users coming from Chroma or Qdrant. The error is among the most commonly reported in setup guides.
- **Slow search after restart, scaling or heavy filters** (performance): Official bottleneck guidance points to search parameters (ef, nprobe), filter selectivity, unindexed segments and queueing on query nodes. Users report sudden latency spikes even with query nodes about half used.
- **Cluster mode is heavy to run yourself** (onboarding): Official docs ask for 32 GB RAM minimum (128 GB recommended) and 8+ cores for a cluster, plus etcd, object storage and a WAL. Small teams often find this more than they want to operate.
- **Connection refused or timeout on localhost:19530** (reliability): Clients fail with 'Fail connecting to server on localhost:19530. Timeout' when the container is not up yet, the port is not published, or a firewall blocks gRPC 19530. Standalone can take a while to become healthy.
- **Vector dimension mismatch errors when switching embedding model** (usability): The schema dim is fixed. Sending embeddings of another length (for example 768 into a 1536 collection) fails with a dimension mismatch, and the only fix is a new collection and re-ingest. Downstream tools such as LightRAG needed a patch for it.
- **Zilliz Cloud Dedicated starts at $126/month and scales with vectors** (pricing): Dedicated is listed from $126/month (Standard) and $197/month (Enterprise), and cluster rates run from about $5 to $63 per million 768-dim vectors per month depending on tier. Serverless is billed by vCUs, which are hard to predict.
- **Index not exist error after creating a collection** (onboarding): Unlike some rivals, Milvus does not build the vector index for you in the quick path; create_index on the vector field is required before load. New users hit 'index not exist' and lose time.
- **Freshly inserted data does not show up in search** (usability): Inserts sit in growing segments and results can be empty until flush or a stronger consistency level. Third-party guides list this as a top confusion for new users.
- **Many production questions stay open on GitHub** (support): Several bug reports about load failures after power loss are open and tagged as needing more information, leaving self-hosters to debug alone. Paid support exists only through Zilliz plans.
- **Concurrent bulk inserts hit 'DataNode resource not enough'** (usability): Standalone has a fixed data node pool and many parallel writers can exhaust it. Fix is fewer writers, batches of 10k+ rows, or cluster mode.
- **Free Zilliz Cloud cluster first query times out** (performance): A third-party guide reports free-tier clusters auto-pause and the first query after a pause can time out, needing a retry after about 10 seconds. Not confirmed in official Zilliz pages we read.

## What users like

- **Scales to very large vector counts**: Built as a distributed system with separate query, data and index nodes, plus index choices from FLAT and HNSW to IVF_PQ, SCANN and sparse vectors.
- **Open source with a managed option**: Run it free yourself or use Zilliz Cloud (Free, Serverless, Dedicated, BYOC) without changing APIs.
- **Many index types and memory trade-offs**: Docs list FLAT, IVF_FLAT, IVF_SQ8, IVF_PQ, HNSW variants, SCANN, binary and sparse indexes so you can trade accuracy for RAM.
- **Easy local start with Milvus Lite and Docker standalone**: Standalone runs from one Docker script with embedded etcd and local storage for development.
- **Broad SDK and framework support**: Python, Node and other SDKs plus common RAG frameworks integrate it.
- **Free tier on Zilliz Cloud**: Free plan lists 5 GB storage, 2.5M vCUs per month and up to 5 collections.

## Pricing

- **Self-hosted (open source)**: $0.00 (free) — hidden costs: You pay for servers: 8-16 GB RAM for standalone, 32-128 GB for cluster, plus etcd and object storage and your own ops time.
- **Zilliz Cloud Free**: $0.00 (free) — hidden costs: Heavier use needs a paid plan.
- **Zilliz Cloud Standard (Serverless)**: $0.00 (usage_based) — hidden costs: vCU usage varies with reads and writes.
- **Zilliz Cloud Standard (Dedicated)**: $126.00 (monthly) — hidden costs: Per million vector rates scale with tier (about $5 to $63 per million 768-dim vectors per month).
- **Zilliz Cloud Enterprise (Dedicated)**: $197.00 (monthly) — hidden costs: Cost rises with cluster size.
- **Business Critical / BYOC**: usage_based — hidden costs: No published price.

## Who should and shouldn't use it

- **Teams with billions of vectors** — Good fit: Designed for large distributed deployments with many index options.
- **Teams with Kubernetes and ops skills** — Good fit: Cluster mode needs etcd, object storage and tuned resources.
- **Prototype builders** — Depends: Lite and Docker standalone work, but load/index steps add friction versus simpler tools.
- **Small RAG apps under a million vectors** — Avoid: pgvector, Chroma or Qdrant are lighter to run.
- **Teams that want zero ops** — Depends: Zilliz Cloud removes operations but starts at $126/month for Dedicated.
- **Windows-only local developers** — Avoid: Needs WSL2 or Docker; Docker Desktop wants 8 GB for the VM.
- **Cost-sensitive startups** — Depends: Free tier is useful; paid usage is harder to predict.

## Alternatives

- **Pinecone** (https://www.tryorbye.com/products/pinecone): Fully managed with no etcd, MinIO or load steps. Trade-off: closed source and cloud-only.
- **Weaviate** (https://www.tryorbye.com/products/weaviate): Open source with built-in hybrid search and modules. Trade-off: also needs sizing for RAM.
- **Qdrant** (https://www.tryorbye.com/products/qdrant): Lighter single-binary deployment in Rust with simple setup. Trade-off: less distributed scale tooling than Milvus cluster.
- **Chroma** (https://www.tryorbye.com/products/chroma): Easiest local start for prototypes, no index or load step. Trade-off: less suited to billion-scale.
- **pgvector**: Keep vectors in Postgres, no new infrastructure. Trade-off: slower at very large scale.

## FAQ

### Is Milvus worth it?

Milvus is worth it if you need large-scale vector search and can run etcd, object storage and query nodes, or pay for Zilliz Cloud. For small apps, pgvector, Qdrant or Chroma are simpler.

### Is Milvus free?

The open-source Milvus is free to self-host. Zilliz Cloud has a Free plan with 5 GB storage, 2.5M vCUs per month and up to 5 collections.

### How much does Zilliz Cloud cost?

Zilliz lists Standard from $0/month (Serverless) or from $126/month (Dedicated), Enterprise from $197/month (Dedicated), with Business Critical and BYOC by quote.

### Why does Milvus say collection not loaded?

You searched before calling load_collection. Create a vector index, load the collection, and check get_load_state.

### How much RAM does Milvus need?

Docs say standalone needs 8 GB minimum (16 GB recommended) and a cluster 32 GB minimum (128 GB recommended), depending on data volume.

### Why is my Milvus query node out of memory?

Loading a collection places index and raw data in RAM. Load fewer fields, use a lighter index like IVF_SQ8 or DiskANN, release unused collections, or add nodes.

### Does Milvus need etcd and MinIO?

Yes. Docker script mode embeds etcd and uses local storage; Docker Compose and cluster use etcd and MinIO or other object storage.

### Milvus vs Pinecone: which is better?

Pinecone is managed and simpler; Milvus is open source and more tunable but heavier to operate.

### Milvus vs Qdrant?

Qdrant is lighter to deploy; Milvus offers a distributed architecture and more index types.

### What are the best Milvus alternatives?

Pinecone, Weaviate, Qdrant, Chroma and pgvector are the main ones, depending on whether you want managed, lighter or Postgres-native.

### Can I run Milvus on Windows?

Use Docker Desktop with WSL 2 or WSL2 directly. A third-party guide says Milvus Lite has no Windows wheel.

### How do I cancel Zilliz Cloud?

Delete (drop) or suspend clusters from Cluster Details. Dropped clusters can be restored from the recycle bin within 30 days. See our cancel guide.

---
Try or Bye aggregates problem patterns from user reviews, forums, and app stores. Methodology: https://www.tryorbye.com/methodology