Spotlight on macOS Tahoe can't find your files? Six fixes that actually work
You type a filename you know is on disk. Spotlight returns nothing — or worse, it returns the file's parent folder but not the file itself. On macOS Tahoe 26 this has become common enough that the TidBits forum keeps a running thread about…
You type a filename you know is on disk. Spotlight returns nothing — or worse, it returns the file's parent folder but not the file itself. On macOS Tahoe 26 this has become common enough that the TidBits forum keeps a running thread about it, and Apple's own support discussions have multiple long threads tracking the same symptoms across the 26.0 and 26.1 betas.
This guide collects the six fixes that have actually worked, in order. Try them top to bottom. Most users get back to a usable Spotlight after step three; the rest need a full rebuild.
First, confirm the failure mode
Spotlight has more failure modes than it has feature flags. Before you change anything, narrow down which one you are hitting:
- Zero results, no errors. Spotlight just shrugs. Usually an indexing problem on the path containing the file.
- Wrong results. Spotlight finds files but returns stale paths or the wrong copy. Usually a corrupted store.
- Partial results. Spotlight finds some matches but skips obvious ones. Usually a per-importer crash — e.g. PDFs missing but text files fine.
- Slow results. Spotlight finds the file eventually, but takes seconds. Usually a busy
mds_storesre-import in progress.
If you are in case 4, the fix is patience plus the steps in our mdworker high-CPU guide. The rest of this post addresses cases 1–3.
Fix 1 — Check the file's metadata
Spotlight only finds files it has imported metadata for. mdls shows you exactly what it has:
mdls ~/path/to/the-file.md
If you see real attributes (kMDItemContentType, kMDItemDisplayName, kMDItemTextContent if it is a text file), Spotlight has the file. The failure is in the query path, not the indexer. Skip ahead to Fix 4.
If mdls returns mostly (null) values, the file has not been indexed. The fix is on the indexer side — Fix 2.
Fix 2 — Force a per-file re-import
mdimport re-runs the indexer on a single path:
mdimport ~/path/to/the-file.md
This is the lightest possible touch. It does not rebuild the whole store; it just hands one file back to the importers. Run mdls again afterwards — if the metadata is now populated, search for the file in Spotlight, it should appear within a few seconds.
For a whole folder:
mdimport -r ~/Documents/important-folder
This is the right tool for "I just rsync'd 10k files in and Spotlight has not noticed". It is also safe to abort with Ctrl-C; nothing bad happens, the importer just stops.
Fix 3 — Audit your Privacy exclusions
A surprising number of "Spotlight can't find my file" reports turn out to be a Privacy exclusion the user added years ago and forgot. Open System Settings → Spotlight → Privacy and read the whole list. If the file's parent path (or any ancestor) is on it, the file is invisible to Spotlight by design. Remove the exclusion and run mdimport -r on the path.
You can also check from the command line:
mdutil -s ~/Documents
If the output says "Indexing and searching disabled" on a path you expect to be indexed, that is your problem.
Fix 4 — Reset the Spotlight UI itself
Sometimes the indexer is fine but the Spotlight menu UI gets into a bad state — most often after a software update. Kill the SystemUIServer process; macOS will respawn it:
killall SystemUIServer
This is harmless. The menu bar flickers, the dock blinks, and Spotlight comes back. Try your search again. If it now works, you were not actually fighting the indexer; you were fighting the UI process.
Fix 5 — Rebuild the index
If mdls shows blank metadata for files that should be indexed, and mdimport does not help, the on-disk store is probably corrupted. Rebuild it:
sudo mdutil -E /
-E erases the index for the named volume and triggers a fresh build from scratch. Expect noisy fans for an hour or two on a typical user's ~. OSXDaily's Sequoia fix-it post walks through the same command, and it still applies on Tahoe 26.
If you have multiple internal volumes you can target just the Data volume to skip rebuilding system frameworks' indexes:
sudo mdutil -E /System/Volumes/Data
Fix 6 — Nuke the store directory
The last resort, used when even mdutil -E does not stick. This removes the on-disk index folder at the volume root before triggering the rebuild:
sudo killall mds
sudo rm -rf /.Spotlight-V100
sudo mdutil -E /
After it finishes, reboot once. On a small minority of Tahoe 26 installs this is the only path that restores search results for previously-unindexed files. Apple Support's own thread on the topic collects user reports confirming the same sequence.
A safety net for when Spotlight is rebuilding
Every fix above involves waiting — sometimes minutes, sometimes hours. During that window your normal ⌘Space workflow stops working. The pragmatic answer is to keep a second launcher installed that does not rely on mds.
CmdSpace is one option. Its index is local-only, lives at ~/Library/Application Support/CmdSpace/index, and is built by CmdSpace's own Rust-backed scanner — independent of Spotlight's daemon. While mds_stores is rebuilding, CmdSpace keeps finding your files at sub-25ms. It is $29 one-time, with a 60-day free trial, no subscription. If you want the migration path, see our Spotlight-to-CmdSpace guide.
You do not have to commit. Keeping both installed costs you a few hundred MB of disk and a single hotkey rebind. The next time Spotlight breaks — and on Tahoe 26 it will, eventually — you will be glad it is there.
When to give up on the fix and report the bug
If you have run all six fixes and Spotlight still cannot find an obvious file, you have hit a real bug. File feedback through Feedback Assistant with:
- A
sysdiagnosearchive (created withsudo sysdiagnose -f ~/Desktop) - The exact
mdlsoutput on the missing file - A list of any Privacy exclusions on the path
- The
mdutil -s /output
Link Michael Tsai's Spotlight running notes as prior art. Reports with that kind of detail are far more likely to get triaged.