> ## 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.

# El servidor de lenguaje falla con 'no space left on device' en Linux

> Resuelve fallos de inicio del servidor de lenguaje en Linux causados por el agotamiento de los límites de inotify watch/instance (ENOSPC). Incluye síntomas, comandos de diagnóstico y soluciones mediante sysctl.

En Linux, el servidor de lenguaje de Windsurf puede fallar al iniciar con un error que contiene **«no space left on device»**, incluso cuando el sistema tiene bastante espacio libre en disco. Esto se debe a que se han agotado los límites del kernel de Linux para **inotify watch** o **inotify instance**, no al uso real de disco.

El servidor de lenguaje usa **inotify** para vigilar cambios en los archivos de tu workspace. Cuando se alcanza el límite del kernel, el sistema devuelve un error `ENOSPC`, que comúnmente se muestra como «no space left on device».

***

<div id="symptoms">
  ## **Síntomas**
</div>

Es posible que aparezca lo siguiente en los logs de salida de Windsurf:

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

A menudo va acompañado de trazas de pila que hacen referencia a componentes como:

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

Comportamiento que suele observarse:

* Windsurf se abre con normalidad
* El servidor de lenguaje se cierra inmediatamente después de iniciarse
* Las funcionalidades que dependen del servidor de lenguaje (p. ej., Cascade, Autocomplete) no funcionan

***

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

<div id="1-check-your-current-inotify-limits">
  ### **1. Comprueba los límites actuales de inotify**
</div>

Ejecuta los siguientes comandos:

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

# Verificar el número máximo de instancias de inotify por usuario
cat /proc/sys/fs/inotify/max_user_instances
```

Los valores predeterminados habituales son **8192** para watches y **128** para instancias. Estos suelen ser demasiado bajos para el uso en un IDE en workspaces grandes (especialmente monorepos) y pueden verse reducidos aún más por otros procesos que consumen recursos de inotify (contenedores, herramientas de sincronización, otros editores, servicios en segundo plano).

<div id="2-check-how-many-inotify-instances-are-currently-in-use">
  ### **2. Comprueba cuántas instancias de inotify se están usando actualmente**
</div>

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

Si este valor está cerca de (o por encima de) tu `max_user_instances`, es posible que los nuevos usuarios de inotify (como el servidor de lenguaje) fallen al inicializarse.

***

<div id="solution">
  ## **Solución**
</div>

Aumenta los límites de inotify. Puedes aplicar los cambios temporalmente (hasta el próximo reinicio) o de forma permanente.

<div id="temporary-fix-until-reboot">
  ### **Solución temporal (hasta reiniciar)**
</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">
  ### **Solución permanente (persiste tras reiniciar el sistema)**
</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
```

Después de aplicar cualquiera de las soluciones, **reinicia Windsurf**. El servidor de lenguaje debería iniciarse correctamente.

Esta es una limitación bien conocida en Linux que afecta a otros IDE y herramientas de desarrollo que dependen de monitores de archivos. Si tu organización gestiona las configuraciones del sistema de forma centralizada, pide a tu equipo de TI / infraestructura que aplique estos parámetros de sysctl.

***

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

* **`fs.inotify.max_user_watches=524288`**\
  Se recomienda para repositorios grandes o monorepos. Cada archivo/directorio supervisado consume memoria del kernel (a menudo \~1 KB por watch en sistemas de 64 bits), por lo que **524288 watches** pueden llegar a usar aproximadamente **\~512 MB** de memoria del kernel.
* **`fs.inotify.max_user_instances=1024`**\
  Se recomienda si ejecutas varias aplicaciones que crean instancias de inotify (múltiples ventanas del IDE, contenedores, herramientas de sincronización de archivos, etc.). El valor predeterminado de **128** puede agotarse rápidamente en entornos de desarrollo.
