{"record":{"id":"d9105cad47420c73","repo":"Flow-Launcher/Flow.Launcher","slug":"it-can-be-very-slow-without-index-which-is-only-s","errorCode":null,"errorMessage":"It can be very slow without index (which is only supported in Everything v1.5+)","messagePattern":"It can be very slow without index \\(which is only supported in Everything v1\\.5\\+\\)","errorType":"exception","errorClass":"EngineNotAvailableException","httpStatus":null,"severity":"warning","filePath":"Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchManager.cs","lineNumber":99,"sourceCode":"\n            var option = new EverythingSearchOption(search, \n                Settings.SortOption, \n                MaxCount: Settings.MaxResult, \n                IsFullPathSearch: Settings.EverythingSearchFullPath, \n                IsRunCounterEnabled: Settings.EverythingEnableRunCount);\n\n            await foreach (var result in EverythingApi.SearchAsync(option, token))\n                yield return result;\n        }\n\n        public async IAsyncEnumerable<SearchResult> ContentSearchAsync(string plainSearch, string contentSearch,\n            [EnumeratorCancellation] CancellationToken token)\n        {\n            await ThrowIfEverythingNotAvailableAsync(token);\n\n            if (!Settings.EnableEverythingContentSearch)\n            {\n                throw new EngineNotAvailableException(Enum.GetName(Settings.IndexSearchEngineOption.Everything)!,\n                    Localize.flowlauncher_plugin_everything_enable_content_search(),\n                    Localize.flowlauncher_plugin_everything_enable_content_search_tips(),\n                    Constants.EverythingErrorImagePath,\n                    _ =>\n                    {\n                        Settings.EnableEverythingContentSearch = true;\n\n                        return ValueTask.FromResult(true);\n                    });\n            }\n\n            if (token.IsCancellationRequested)\n                yield break;\n\n            var option = new EverythingSearchOption(plainSearch,\n                Settings.SortOption,\n                IsContentSearch: true,\n                ContentSearchKeyword: contentSearch,","sourceCodeStart":81,"sourceCodeEnd":117,"githubUrl":"https://github.com/Flow-Launcher/Flow.Launcher/blob/7fc63b07bbaa10a0f0b2601487913fcba9ed24b0/Plugins/Flow.Launcher.Plugin.Explorer/Search/Everything/EverythingSearchManager.cs#L81-L117","documentation":"Thrown as EngineNotAvailableException when ContentSearchAsync is called but Settings.EnableEverythingContentSearch is false. The exception is not really an error: it is the prompting mechanism that asks the user to opt in to Everything content search, and its Action flips the flag on. The message warns that content search without the Everything index is slow and that index support requires Everything v1.5+.","triggerScenarios":"User issues a file-content search action keyword while Settings.IndexSearchEngine is Everything, Settings.ContentIndexProvider is EverythingSearchManager, and EnableEverythingContentSearch is false. The first content query throws this exception so the UI can show a click-to-enable result.","commonSituations":"Default install with Everything as the index engine; user upgraded Everything to v1.5+ but never enabled the plugin's content-search toggle; user switched from Windows Index to Everything and the content toggle was reset.","solutions":["Enable the option in the Explorer plugin settings: 'Enable Everything content search', or click the result that the Action renders.","If you do not want Everything content search, switch Settings.ContentSearchEngine to WindowsIndex.","Upgrade Everything to v1.5+ so content search uses the index and stays fast.","Set Settings.EnableEverythingContentSearch = true at startup if you provision Flow Launcher programmatically."],"exampleFix":"// before - throw to surface the opt-in prompt\nif (!Settings.EnableEverythingContentSearch)\n{\n    throw new EngineNotAvailableException(...);\n}\n\n// after - treat as a one-time prompt, then proceed\nif (!Settings.EnableEverythingContentSearch)\n{\n    if (!await PromptEnableContentSearchAsync())\n        return AsyncEnumerable.Empty<SearchResult>();\n}","handlingStrategy":"validation","validationCode":"if (Settings.IndexSearchEngine == IndexSearchEngineOption.Everything && !Settings.EnableEverythingContentSearch)\n    logger.Info(\"Everything content search is disabled; prompt the user to opt in.\");","typeGuard":"static bool IsEverythingContentSearchEnabled(Settings s) => s.IndexSearchEngine == IndexSearchEngineOption.Everything && s.EnableEverythingContentSearch;","tryCatchPattern":"try { await manager.ContentSearchAsync(plain, content, token); }\ncatch (EngineNotAvailableException ex) when (!Settings.EnableEverythingContentSearch) { ShowEnableContentSearchResult(ex); }","preventionTips":["Enable 'Enable Everything content search' in plugin settings.","Upgrade Everything to v1.5+ for index-backed content search.","Switch ContentSearchEngine to WindowsIndex if you do not want Everything.","Provision EnableEverythingContentSearch = true in managed deployments."],"tags":["everything","content-search","engine-not-available","opt-in","csharp"],"backgroundTag":null,"analyzedSha":"7fc63b07bbaa10a0f0b2601487913fcba9ed24b0","analyzedAt":"2026-08-13T14:54:20.914Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}