> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Language Server falha com 'No Space Left on Device' no Linux

> Resolva falhas de inicialização do Language Server no Linux causadas pelo esgotamento dos limites de inotify watch/instance (ENOSPC). Inclui sintomas, comandos de diagnóstico e correções via sysctl.

No Linux, o Language Server do Windsurf pode falhar ao iniciar com um erro contendo **"no space left on device"**, mesmo quando o sistema tem bastante espaço livre em disco. Isso é causado pelo esgotamento dos limites de **inotify watch** ou **inotify instance** do kernel Linux, e não por uso real de disco.

O Language Server usa **inotify** para monitorar arquivos no seu workspace em busca de alterações. Quando o limite do kernel é atingido, o sistema retorna um erro `ENOSPC` — que normalmente é exibido como "no space left on device."

***

<div id="symptoms">
  ## **Sintomas**
</div>

Você pode ver o seguinte nos logs de saída do Windsurf:

```
Language server failed - no space left on device: no space left on device
```

Frequentemente acompanhado de stack traces que fazem referência a componentes como:

* `file_watcher`
* `AddTrackedWorkspace`
* `AddDirectoriesRecursive`

Comportamento que você normalmente verá:

* Windsurf abre normalmente
* O servidor de linguagem é encerrado imediatamente após iniciar
* Recursos que dependem do servidor de linguagem (por exemplo, Cascade, Autocomplete) não funcionam

***

<div id="diagnosis">
  ## **Diagnóstico**
</div>

<div id="1-check-your-current-inotify-limits">
  ### **1. Verifique os limites atuais do inotify**
</div>

Execute os seguintes comandos:

```shell theme={null}
# Check the maximum number of inotify watches per user
cat /proc/sys/fs/inotify/max_user_watches

# Verifica o número máximo de instâncias inotify por usuário
cat /proc/sys/fs/inotify/max_user_instances
```

Os valores padrão mais comuns são **8192** para watches e **128** para instâncias. Esses valores frequentemente são muito baixos para uso de IDEs em workspaces grandes (especialmente monorepos) e podem ser ainda mais reduzidos por outros processos que consomem recursos do inotify (contêineres, ferramentas de sincronização, outros editores, serviços em segundo plano).

<div id="2-check-how-many-inotify-instances-are-currently-in-use">
  ### **2. Verifique quantas instâncias do inotify estão em uso no momento**
</div>

```shell theme={null}
find /proc/*/fd -lname anon_inode:inotify 2>/dev/null | wc -l
```

Se essa contagem estiver próxima (ou acima) do seu `max_user_instances`, novos usuários do inotify (como o servidor de linguagem) podem não conseguir inicializar.

***

<div id="solution">
  ## **Solução**
</div>

Aumente os limites do inotify. Você pode aplicar as alterações temporariamente (até a reinicialização) ou permanentemente.

<div id="temporary-fix-until-reboot">
  ### **Solução temporária (até o próximo reinício)**
</div>

```shell theme={null}
sudo sysctl fs.inotify.max_user_watches=524288
sudo sysctl fs.inotify.max_user_instances=1024
```

<div id="permanent-fix-survives-reboot">
  ### **Solução permanente (permanece após a reinicialização)**
</div>

```shell theme={null}
echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf
echo "fs.inotify.max_user_instances=1024" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
```

Depois de aplicar qualquer uma das correções, **reinicie o Windsurf**. O language server deve iniciar com sucesso.

Esta é uma limitação bem conhecida no Linux que afeta outros IDEs e ferramentas de desenvolvimento que dependem de file watchers. Se a sua organização gerencia configurações de sistema de forma centralizada, peça à equipe de TI / infraestrutura para aplicar essas configurações sysctl.

***

<div id="when-to-use-which-value">
  ## **Quando usar cada valor**
</div>

* **`fs.inotify.max_user_watches=524288`**\
  Recomendado para repositórios grandes ou monorepos. Cada arquivo/diretório monitorado consome memória do kernel (geralmente \~1 KB por watch em sistemas 64-bit), então **524288 watches** podem usar aproximadamente **\~512 MB** de memória do kernel.
* **`fs.inotify.max_user_instances=1024`**\
  Recomendado se você executa várias aplicações que criam instâncias de inotify (várias janelas de IDE, contêineres, ferramentas de sincronização de arquivos, etc.). O valor padrão de **128** pode se esgotar rapidamente em ambientes de desenvolvimento.
