Plusieurs sessions meurent ensemble, soupçonnez la machine
Quand plusieurs sessions meurent au même instant sans aucune trace dans leurs propres journaux, la cause probable est le système d'exploitation qui tue des processus sous pression mémoire, et le journal système tranche plus vite qu'une chasse aux erreurs applicatives.
Une session Claude Code s'arrête net, sans message d'erreur exploitable dans son propre journal. Ce n'est pas inquiétant en soi. Ce qui doit faire changer de piste, c'est quand deux ou trois sessions distinctes s'arrêtent au même instant, sur la même machine, sans lien de dépendance entre elles. Un bug propre à l'outil frapperait rarement plusieurs processus indépendants à la seconde près. Un système d'exploitation qui manque de mémoire, si.
Le tueur de mémoire, une couche sous l'outil
Sur Linux, quand la mémoire disponible tombe trop bas, le noyau déclenche un mécanisme appelé OOM killer, pour out of memory killer : il choisit un ou plusieurs processus et les termine de force pour éviter que la machine entière ne se bloque. Le processus tué ne reçoit généralement aucune chance d'écrire un message d'erreur avant de disparaître, ce qui explique l'absence totale de trace dans son propre journal. Windows n'a pas d'équivalent qui tue un processus de cette façon : son détecteur d'épuisement de ressources, visible dans l'observateur d'événements sous l'identifiant Microsoft-Windows-Resource-Exhaustion-Detector, se contente de journaliser l'événement 2004 en nommant les processus qui consommaient le plus de mémoire virtuelle au moment de la mesure. Cette entrée suffit à dater une pression mémoire réelle sur la machine, mais elle diagnostique, elle ne tranche pas seule ce qui a arrêté un processus. Dans les deux cas, la piste sort de Claude Code : elle se situe une couche plus bas, là où l'outil n'a ni visibilité ni contrôle.
Le journal système tranche avant le journal applicatif
Chercher la cause dans les journaux de l'application prend du temps et ne trouvera rien si la cause est ailleurs. Le journal système, lui, enregistre l'événement au moment où il se produit, indépendamment de ce que faisait chaque processus tué. C'est donc lui qu'il faut lire en premier, pas en dernier recours.
# Fabrique un journal d'exemple, sans toucher au vrai journal système
printf '2026-09-02T03:14:07 kernel: Out of memory: Killed process 4821 (node) total-vm:2048000kB\n2026-09-02T03:14:07 kernel: Out of memory: Killed process 4822 (node) total-vm:1980000kB\n' > journal-exemple.log
grep -i "out of memory" journal-exemple.log
# Out of memory: Killed process 4821 (node) total-vm:2048000kB
# Out of memory: Killed process 4822 (node) total-vm:1980000kB
Sur un vrai poste, la commande équivalente est dmesg -T | grep -i killed sur Linux, ou une lecture du journal Système dans l'observateur d'événements Windows à la recherche d'un événement de détection de ressources épuisées. Les deux horodatages identiques sur les deux processus tués, comme dans l'exemple fabriqué ci dessus, sont la signature qui distingue une purge mémoire d'une coïncidence.
Le correctif porte sur la machine, pas sur l'usage
Une fois la purge confirmée, la réponse naturelle, réduire le nombre de sessions ouvertes en parallèle, traite le symptôme sans régler la cause. Le fichier d'échange, aussi appelé swap, sert justement à absorber les pics de mémoire sans tuer de processus : le dimensionner correctement, ou en ajouter un absent, évite la prochaine purge sans imposer de discipline artificielle sur le nombre de fenêtres ouvertes.
Cette même discipline, vérifier la couche la plus basse avant d'incriminer l'outil, structure aussi le geste devant une commande qui ne répond plus, voir une commande bloquée.
Bug de l'outil ou pression mémoire, quatre critères pour trancher
| Hypothèse | Trace dans le journal de chaque session | Trace dans le journal système | Sessions touchées au même instant | Réduit par le seul fait de fermer des fenêtres |
|---|---|---|---|---|
| Bug propre à l'outil | Présent, un message d'erreur ou une pile d'appel accompagne l'arrêt | Absent en général, rien ne signale d'événement système correspondant | Rare, un bug touche une session à la fois sauf cas particulier | Sans effet, le bug réapparaît indépendamment du nombre de sessions |
| Pression mémoire, OOM killer sur Linux | Absent, le processus est terminé avant de pouvoir écrire quoi que ce soit | Présent, un événement de purge horodaté apparaît au moment de l'arrêt | Fréquent, plusieurs processus tombent au même horodatage | Efficace à court terme, mais la cause réelle est la taille du fichier d'échange |
Sur un poste de développement, trois sessions Claude Code ouvertes dans trois terminaux distincts s'arrêtent à la même seconde, chacune figée sur sa dernière ligne affichée. Un développeur ouvre le journal système de la machine et y trouve une entrée de purge mémoire horodatée à la même seconde que l'arrêt des trois sessions.
Écrivez en une phrase ce que cette situation établit, et en une phrase ce qu'elle n'établit pas.
Ce que cela établit : L'arrêt simultané des trois sessions coïncide, au même instant, avec une entrée de purge mémoire enregistrée indépendamment par le système d'exploitation lui même.
Ce que cela n’établit pas : Elle n'établit pas quel processus précis a déclenché le manque de mémoire, ni si le fichier d'échange de cette machine est correctement dimensionné pour éviter que l'incident ne se reproduise.
Les trois calibrages faux les plus courants
- Trop large Toute session Claude Code qui s'arrête sans message d'erreur est causée par une purge mémoire du système.
- Trop étroit Cette coïncidence d'horodatage ne prouve rien, puisqu'un seul incident a été observé sur une seule machine.
- À côté Cette situation montre que le développeur a mis trop de temps à consulter le journal système après l'incident.
- Deux ou trois sessions indépendantes qui s'arrêtent au même instant, sans trace dans leur propre journal, pointent vers une cause commune extérieure à l'outil plutôt que vers un bug de chacune.
- L'OOM killer, le mécanisme du noyau Linux qui termine des processus sous pression mémoire, ne laisse généralement aucun message d'erreur dans le journal du processus tué.
- Le journal système enregistre l'événement de purge mémoire au moment où il se produit, il se lit avant une recherche dans les journaux applicatifs, pas après.
- Un horodatage identique sur plusieurs processus tués est la signature d'une purge mémoire plutôt qu'une suite de pannes indépendantes.
- Le correctif durable dimensionne le fichier d'échange de la machine, réduire le nombre de sessions ouvertes ne traite que le symptôme.
Devant deux sessions arrêtées au même instant, cherchez d'abord l'entrée de purge mémoire dans le journal système de votre machine avant toute recherche dans les journaux applicatifs, puis vérifiez la taille de votre fichier d'échange.
Chaque affirmation datable de cette leçon renvoie ici au texte public qui la porte. Une source qui ne s’ouvre pas ne prouve rien.
- Noyau Linux, documentation du mécanisme out of memory killer consultée le 2026-09-02
- Microsoft, journal Système, événement 2004 du détecteur d'épuisement de ressources consultée le 2026-09-02