Atlas codebase_search returns codebase index failed (is the embedding server reachable?) because CodebaseSearchTool calls ensureFresh(root) then index.search, and any failure is caught and converted into a readable output line. The fix is to start the embedding server, since the codebase index uses an Ollama embedder unless the provider is set to fake, then re-run codebase_search so ensureFresh can rebuild the index. Fall back to grep and glob in the meantime.
Why does Atlas say codebase index failed (is the embedding server reachable?)
Atlas says codebase index failed (is the embedding server reachable?) because CodebaseSearchTool calls ensureFresh(root) then index.search, and any failure along that path is caught and converted into a readable output line rather than crashing the 2026 session.
The wording of the message tells you which embedding provider is configured. With a real embedding server, Atlas prints codebase index failed (is the embedding server reachable?): <error>, and the parenthetical is a direct hint about the most likely cause. In fake-embedding mode the message is the shorter codebase index failed: <error>, because there is no server to reach and the parenthetical would be misleading. Either way the tool returns an output line instead of throwing, so the session continues and you can switch to another search strategy immediately. The trailing <error> is the underlying failure, and it is the part worth reading closely.
How to fix the Atlas codebase index failure
Fix the Atlas codebase index failure in 2 steps. First, start the embedding server, because the codebase index uses an Ollama embedder unless the provider is set to fake. Second, confirm the embedding endpoint responds, since ollama-embedder throws `embeddings request failed: <status>` when it does not.
Start the embedder first, then verify it answers. The specific string `embeddings request failed: <status>` inside the <error> portion of the message is the clearest confirmation that the embedding endpoint was reached but rejected the request, and the status code narrows it further. If the embedder is running and reachable, re-run codebase_search: ensureFresh(root) will rebuild the index on the next call, and index.search will then run against a current index. Running the embedder locally has a second benefit worth stating plainly, because Atlas can build its code index with local Ollama embeddings, keeping code off third-party servers.
How to search an Atlas codebase while the index is down
Fall back to grep and glob while the Atlas codebase index is unavailable. Neither of those 2 tools depends on embeddings, so both keep working when codebase_search returns codebase index failed. Literal search covers a surprising amount of ground when you already know a symbol name or an error string.
Atlas codebase_search is the semantic instrument: Atlas searches code with hybrid semantic and keyword retrieval fused by reciprocal rank fusion, and Atlas indexes code by AST declarations using tree-sitter, not blind line windows. That is what you lose while the embedder is down. What you keep is exact matching. Grep the error message, grep the function name, glob for the file pattern, and read the results. The workflow is less forgiving of vague questions, but it does not require an embedding endpoint at all, and it is the right stopgap while you get the Ollama embedder back on its feet.
What does fake-embedding mode mean in the Atlas index error
Fake-embedding mode in Atlas produces 1 of the 2 possible index error messages, the shorter codebase index failed: <error>, with no question about the embedding server. That shorter wording means the configured provider is fake, so no embedding endpoint is involved and starting an Ollama server will not change the outcome.
The distinction matters because the two messages send you to different places. Seeing codebase index failed (is the embedding server reachable?): <error> points at a real embedding server that is down or refusing requests. Seeing codebase index failed: <error> points at something else entirely, since the provider is set to fake and there is no server to blame. In that case read the <error> text itself, because CodebaseSearchTool caught it from ensureFresh(root) or from index.search and passed it through. The failure is in the index build or the query, not in the network.
How to verify the Atlas codebase index is working again
Verify the Atlas codebase index by re-running codebase_search once the embedder is reachable, so ensureFresh can rebuild the index. A call that returns ranked code results, rather than the codebase index failed line, confirms both of the 2 steps CodebaseSearchTool performs: ensureFresh(root), and then index.search.
The first successful call after an outage may take longer than usual, because ensureFresh(root) has to bring the index back up to date before index.search can run. That is expected, not a second failure. Ask a question you know the answer to, something whose declaration you can already point at, and check that the returned results include it. Because Atlas indexes code by AST declarations using tree-sitter, not blind line windows, a healthy index returns whole declarations rather than arbitrary slices, which is itself a good signal that the rebuild succeeded.
How to fix it
- 01Start the embedding server: the codebase index uses an Ollama embedder unless the provider is set to fake.
- 02Confirm the embedding endpoint responds; ollama-embedder throws `embeddings request failed: <status>` when it does not.
- 03Fall back to grep and glob while the index is unavailable; they do not depend on embeddings.
- 04Re-run codebase_search once the embedder is reachable so ensureFresh can rebuild the index.
Frequently asked questions
- how to fix codebase index failed is the embedding server reachable in Atlas
- Start the embedding server, because the Atlas codebase index uses an Ollama embedder unless the provider is set to fake, then re-run codebase_search so ensureFresh can rebuild the index.
- what does embeddings request failed mean in Atlas
- ollama-embedder throws `embeddings request failed: <status>` when the embedding endpoint does not respond correctly. The status code tells you whether the endpoint rejected the request or was unreachable.
- can I search an Atlas codebase without the embedding server running
- Yes. Fall back to grep and glob while the index is unavailable; they do not depend on embeddings. You lose semantic ranking, not the ability to find exact matches.
- why is the Atlas index error message shorter sometimes
- In fake-embedding mode the message is the shorter codebase index failed: <error>, because no real embedding server is involved. The longer wording appears only when a real embedding provider is configured.
- does Atlas send my code to a third-party embedding service
- Not when you run locally. Atlas can build its code index with local Ollama embeddings, keeping code off third-party servers.
- why is my first Atlas codebase_search slow after fixing the embedder
- CodebaseSearchTool calls ensureFresh(root) before index.search, so the first call after an outage rebuilds the index before returning results.
Try Atlas in your terminal
The terminal-native AI coding agent. Free core, single binary.
Install AtlasRelated guides
Add a Regression Test for a Bug Fix with Atlas in 2026
How to add a regression test with Atlas in 2026: red first, then green. bash records the exit code, write creates the failing test, and edit applies the fix.
Atlas with Claude Opus 4.7 in 2026: 1M Context at $5 / $25 per Mtok
Claude Opus 4.7 drives Atlas with a 1M tokens (1,000,000) window, 128K max output, and $5 per Mtok input, $25 per Mtok output. Setup, tradeoffs, and when to move on.
Atlas with Llama 3.2 3B (local via Ollama): A 2.0GB Offline small_model for 2026
Llama 3.2 3B (local via Ollama) in Atlas for 2026: a 2.0GB pull, Free (self-hosted), 128,000 tokens of context, and the offline small_model that never touches a network.
Atlas for SolidJS: A Terminal-Native AI Coding Agent Built on Solid, for Solid, in 2026
Atlas is a terminal-native AI coding agent for SolidJS in 2026. It reads your createSignal and createMemo graph, fixes destructured props that break reactivity, and runs vitest.
Atlas with Claude Opus 4.8: The 2026 Model Guide
Claude Opus 4.8 in Atlas: a 1M token context window at $5 / $25 per Mtok with 128K output. When to pin Anthropic's top coding model in 2026, and when not to.
Atlas with Amazon Nova Pro: Bedrock Billing and a 300K Window (2026)
Amazon Nova Pro runs Atlas at $0.80 / $3.20 per Mtok on a 300,000 token window, billed through your existing AWS account with no new vendor contract.
Atlas with Magistral Small (local via Ollama): Private Reasoning in 2026
Magistral Small (local via Ollama) in Atlas for 2026: a 14GB pull, Free (self-hosted), reasoning traces generated on your own GPU, and an honest 40,000 token cap.
Atlas with GLM-4.5-Air: The 106B Self-Hostable Cheap Slot in 2026
GLM-4.5-Air drives Atlas at $0.20 per Mtok input and $1.10 per Mtok output on a 128K tokens (131,072) window. A 106B total / 12B active MIT-licensed MoE.