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

# Échec du serveur de langage avec "No space left on device" sous Linux

> Résoudre les échecs de démarrage du serveur de langage sous Linux causés par l’épuisement des limites de surveillances/instances inotify (ENOSPC). Inclut les symptômes, les commandes de diagnostic et les correctifs via sysctl.

Sous Linux, le serveur de langage de Windsurf peut ne pas réussir à démarrer avec une erreur contenant **"no space left on device"**, même lorsque le système dispose de beaucoup d’espace disque libre. Cela est dû à l’épuisement des limites du noyau Linux pour les **surveillances inotify** ou les **instances inotify**, et non à l’utilisation réelle de l’espace disque.

Le serveur de langage utilise **inotify** pour surveiller les fichiers de votre workspace afin de détecter les modifications. Lorsque la limite du noyau est atteinte, le système renvoie une erreur `ENOSPC`—qui apparaît généralement sous la forme "no space left on device."

***

<div id="symptoms">
  ## **Symptômes**
</div>

Vous pouvez voir apparaître ce qui suit dans les logs de sortie de Windsurf :

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

Souvent accompagné de traces de pile faisant référence à des composants comme :

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

Comportement que vous observerez généralement :

* Windsurf s’ouvre normalement
* Le serveur de langage s’arrête immédiatement après son démarrage
* Les fonctionnalités dépendantes du serveur de langage (par exemple, Cascade, Autocomplete) ne fonctionnent pas

***

<div id="diagnosis">
  ## **Diagnostic**
</div>

<div id="1-check-your-current-inotify-limits">
  ### **1. Vérifiez vos limites `inotify` actuelles**
</div>

Exécutez les commandes suivantes :

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

# Vérifier le nombre maximum d'instances inotify par utilisateur
cat /proc/sys/fs/inotify/max_user_instances
```

Les valeurs par défaut typiques sont **8192** pour les watches et **128** pour les instances. Elles sont souvent trop basses pour l'utilisation d'un IDE dans de grands workspaces (notamment les monorepos) et peuvent être encore réduites par d'autres processus consommant des ressources inotify (conteneurs, outils de synchronisation, autres éditeurs, services en arrière-plan).

<div id="2-check-how-many-inotify-instances-are-currently-in-use">
  ### **2. Vérifiez le nombre d'instances inotify actuellement utilisées**
</div>

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

Si ce nombre est proche (ou supérieur) à votre `max_user_instances`, il se peut que les nouveaux utilisateurs inotify (comme le serveur de langage) ne parviennent pas à s'initialiser.

***

<div id="solution">
  ## **Solution**
</div>

Augmentez les limites d'inotify. Vous pouvez appliquer ces modifications temporairement (jusqu'au prochain redémarrage) ou de façon permanente.

<div id="temporary-fix-until-reboot">
  ### **Correctif temporaire (jusqu’au redémarrage)**
</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">
  ### **Solution permanente (persiste après redémarrage)**
</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
```

Après avoir appliqué l’un ou l’autre correctif, **redémarrez Windsurf**. Le serveur de langage devrait démarrer correctement.

Il s’agit d’une limitation bien connue sous Linux qui affecte d’autres IDE et outils de développement qui s’appuient sur des mécanismes de surveillance de fichiers. Si la configuration système est gérée de manière centralisée dans votre organisation, demandez à votre équipe IT/infra d’appliquer ces paramètres sysctl.

***

<div id="when-to-use-which-value">
  ## **Quand utiliser quelle valeur**
</div>

* **`fs.inotify.max_user_watches=524288`**\
  Recommandé pour les grands dépôts ou les monorepos. Chaque fichier/répertoire surveillé consomme de la mémoire du noyau (souvent \~1 Ko par surveillance sur les systèmes 64 bits), donc **524288 surveillances** peuvent utiliser environ **\~512 Mo** de mémoire du noyau.
* **`fs.inotify.max_user_instances=1024`**\
  Recommandé si vous exécutez plusieurs applications qui créent des instances inotify (plusieurs fenêtres d’IDE, conteneurs, outils de synchronisation de fichiers, etc.). La valeur par défaut de **128** peut être atteinte rapidement dans les environnements de développement.
