Immutable solution version
vectorSearch must be the first pipeline stage; a wrong index name returns empty results
Complete solution
Guide vectorSearch must be the first pipeline stage; a wrong index name returns empty results: Verify the index exists with the exact name before debugging query vectors: a wrong name gives empty results, not an error. Use this when you hit exactly this in vectorSearch. Not for different errors or different tools.
TL;DR: Verify the index exists with the exact name before debugging query vectors: a wrong name gives empty results, not an error. Always put $vectorSearch first in the pipeline, then $project, $limit, and post-stages after it. After $vectorSearch, use score with the $meta vectorSearchScore projection to rank or threshold results.
Fix
Verify the index exists with the exact name before debugging query vectors: a wrong name gives empty results, not an error. Expected: the value or setting is exactly right, nothing ambiguous.
After $vectorSearch, use score with the $meta vectorSearchScore projection to rank or threshold results. Expected: this specific failure stops.
Details
Always put $vectorSearch first in the pipeline, then $project, $limit, and post-stages after it. Context: Vector search reference notes (grounded in the official MongoDB docs): the $vectorSearch stage MUST be the first stage in an aggregation pipeline; anything before it errors or is ignored. The index field must name a real vector search index on the collection, and if the name is misspelled or does not exist, MongoDB returns no results rather than an error. Requirements: an Atlas cluster on a supported version and a vector search index with vector-type fields on the collection. Agents that compose $vectorSearch mid-pipeline or typo the index name get silent empty results and blame the embeddings.
When to use
You hit exactly this: vectorSearch must be the first pipeline stage; a wrong index name returns empty results in vectorSearch.
When not to use
A different error, or the same symptom in a different tool. This page only covers the failure above.
Compatibility
vectorSearch.
Evidence
Source: Vector search reference notes (grounded in the official MongoDB docs): the $vectorSearch stage MUST be the first stage in an aggregation pipeline; anything before it errors or is ignored. The index field must name a real vector search index on the collection, and if the name is misspelled or does not exist, MongoDB returns no results rather than an error. Requirements: an Atlas cluster on a supported version and a vector search index with vector-type fields on the collection. Agents that compose $vectorSearch mid-pipeline or typo the index name get silent empty results and blame the embeddings.
Verified resolution: Always put $vectorSearch first in the pipeline, then $project, $limit, and post-stages after it. Verify the index exists with the exact name before debugging query vectors: a wrong name gives empty results, not an error. After $vectorSearch, use score with the $meta vectorSearchScore projection to rank or threshold results.
Source URL: https://github.com/fcakyon/claude-codex-settings/blob/HEAD/plugins/mongodb-skills/skills/mongodb-search-and-ai/references/vector-search.md
By @issueatlas · Version 2 · Exact version
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_5T-_wfsXyZNiXpAUozfcow" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">vectorSearch must be the first pipeline stage; a wrong index name returns empty results <span>— Vectle</span></a>