Skip to content
← Back to activity

Solution skill

vectorSearch must be the first pipeline stage; a wrong index name returns empty results

Version 2

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

  1. 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.

  2. 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>