# Atlas error: No LSP server available for this file type

> Install the language server for that file type and make sure it is on PATH: Atlas LspTool asks LSP.hasClients, and an unmapped extension has no client.

Atlas fails with No LSP server available for this file type because LspTool checks existence first, then asks LSP.hasClients for the file, and with no matching client registered for that extension every operation fails. The fix is to install the language server for that file type and make sure it is on PATH, then confirm the extension is one Atlas maps to a server. Fall back to grep, codebase_search, or read while the language server is unavailable.

## Symptom

The lsp tool fails with: No LSP server available for this file type. Or, earlier in the call, with: File not found: <path>, when the path itself does not exist.

## Cause

LspTool checks existence first, then asks LSP.hasClients for the file. With no matching client registered for that extension, goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, and goToImplementation all fail.

## Fix

1. Install the language server for that file type and make sure it is on PATH.
2. Confirm the file extension is one Atlas maps to a server; an unmapped extension has no client.
3. If the server fails to start, look for LSPInitializeError, which carries the serverID.
4. Fall back to grep, codebase_search, or read while the language server is unavailable.

## Why does Atlas report No LSP server available for this file type

Atlas reports No LSP server available for this file type because LspTool checks existence first, then asks LSP.hasClients for the file. When no client is registered for that extension in the 2026 build, LSP.hasClients returns nothing and the call fails immediately.

The order of the two checks inside LspTool matters when you are reading the error. Existence is checked first, which is why a wrong path produces File not found: <path> rather than the LSP message. Only a file that actually exists reaches LSP.hasClients. If the answer there is no matching client, the whole family of language operations is unavailable for that file: goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, and goToImplementation all fail together, because they all route through the same client lookup. Seeing all six fail at once on the same file is the signature of a missing client, not of a broken individual operation.

## How to fix the missing LSP server in Atlas

Fix No LSP server available for this file type in Atlas by installing the language server for that file type and putting it on PATH. Those 2 things are separate: a binary that is installed but not on PATH is, from LSP.hasClients's point of view, not installed at all.

Install the server for the language you are working in, then confirm the executable resolves from the same shell that launches Atlas. PATH differences between a login shell, a tmux pane, and a desktop launcher are a common reason a server works for one developer and not another on the same repository. After installing, restart Atlas and retry the lsp call on the same file. If the client is now registered, goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, and goToImplementation all become available together, since they share the client that LSP.hasClients resolves.

## Is my file extension mapped to an Atlas LSP server

Confirm the file extension is 1 that Atlas maps to a server, because an unmapped extension has no client at all. LSP.hasClients then finds nothing and Atlas returns No LSP server available for this file type. Installing a server does not help if Atlas never associates that extension with it.

There are two failure shapes that look identical from the error text. The first is a mapped extension with no server installed, which is fixed by installing the server and putting it on PATH. The second is an unmapped extension, where no amount of installing will register a client, because Atlas has nothing telling it which server owns that file type. Config files, templates, and less common languages fall into the second bucket most often. When the extension is unmapped, treat the LSP path as closed for that file and reach for the fallbacks instead of trying to force a client into existence.

## What is LSPInitializeError in Atlas

LSPInitializeError is the Atlas error raised when a language server fails to start, and it carries the serverID so you know which server broke. Look for it before assuming the extension is simply unmapped, because those 2 causes look alike from the outside and produce different diagnostics.

A server that is installed, on PATH, and mapped can still fail to initialize, for example when its own configuration or runtime is broken. LSPInitializeError is the signal for that case, and the serverID it carries names the offending server directly, which is what you need to go fix the underlying installation. Distinguish it from the plain No LSP server available for this file type message: the latter means LSP.hasClients found no client at all, while LSPInitializeError means a client existed and its process refused to come up. Chasing the wrong one wastes time on the wrong half of the stack.

## How to navigate code in Atlas without a language server

Fall back to grep, codebase_search, or read while the Atlas language server is unavailable. Those 3 tools need no LSP client. Atlas searches code with hybrid semantic and keyword retrieval fused by reciprocal rank fusion and indexes code by AST declarations using tree-sitter, so codebase_search covers much of what goToDefinition and findReferences provide.

The fallbacks are not a downgrade to guesswork. codebase_search finds declarations by meaning and by keyword at once, grep finds exact symbol occurrences, and read pulls the file so the agent can reason about it directly. Between the three you can usually answer the questions you would have asked hover, documentSymbol, or workspaceSymbol. Be honest about the limit: none of them give you the language server's type-aware precision, so on a large codebase with many same-named symbols, expect to sift more results by hand until the LSP client is registered again.

## FAQ

### how to fix No LSP server available for this file type in Atlas

Install the language server for that file type and make sure it is on PATH, then confirm the file extension is one Atlas maps to a server. An unmapped extension has no client, so LSP.hasClients finds nothing.

### why does Atlas lsp say File not found instead of the LSP error

LspTool checks existence first, then asks LSP.hasClients. A path that does not exist fails at the first check with File not found: <path>, before the client lookup ever runs.

### which Atlas lsp operations break when there is no language server

All of them for that file: goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, and goToImplementation all fail, because they route through the same LSP.hasClients lookup.

### what does LSPInitializeError mean in Atlas

LSPInitializeError means a language server failed to start. It carries the serverID, so you know which server to investigate, and it is distinct from having no client registered at all.

### can Atlas navigate code without an LSP server

Yes. Fall back to grep, codebase_search, or read. Atlas codebase_search uses hybrid semantic and keyword retrieval and indexes by AST declarations, which covers many navigation questions without a language server.

### why does the Atlas language server work for a teammate but not for me

Most often PATH. Atlas needs the server binary resolvable from the shell that launches it, so a server installed outside that PATH is invisible to LSP.hasClients.

---

Canonical HTML: https://runatlas.sh/resources/troubleshooting/lsp-no-server-available
Source of truth: aeo_pages row `/resources/troubleshooting/lsp-no-server-available` (segment: Troubleshooting) (this file is generated from it, never hand-edited).
Licence: Atlas is proprietary with a free core. It is not open source and there is no public source repository.
