Si Claude Code se congela repentinamente en WSL2, la causa más probable es la inflación de memoria de VMMem. Configurar un límite de memoria y habilitar autoMemoryReclaim en .wslconfig lo soluciona en la mayoría de los casos.
Lo típico es esto: estás en medio de una sesión cuando todo se congela. El Administrador de Tareas muestra VMMem consumiendo una cantidad enorme de RAM. Windows se queda sin memoria y mata la VM de WSL2. Todo tu contexto en progreso se pierde. Este escenario aparece constantemente en GitHub Issues y foros de desarrolladores.
Este artículo explica por qué WSL2 se desconecta aleatoriamente mientras usas Claude Code y te guía a través de soluciones concretas. Guárdalo en favoritos para la próxima vez que suceda.
¿Cómo Sabes Si la Desconexión Es un Problema de WSL2?
Primero, necesitas confirmar que WSL2 es realmente la causa. Estos patrones apuntan a un problema a nivel de WSL2:
- La respuesta de Claude Code se detiene repentinamente y toda la terminal se congela
- La terminal muestra "connection lost" o "process terminated"
- La conexión de VS Code Remote WSL se cae al mismo tiempo
- Todos los demás procesos dentro de WSL (servidores de desarrollo, herramientas de build) también mueren
Si solo Claude Code se detiene pero WSL sigue vivo, consulta la guía de solución de problemas de Claude Code primero.
¿Por Qué la Inflación de Memoria de VMMem Causa que WSL2 Se Caiga?
WSL2 se ejecuta como una VM ligera (Hyper-V) en Windows. Esta VM aparece como el proceso VMMem en el lado de Windows.
El problema: WSL2 reclama memoria agresivamente pero raramente la devuelve. Esto es por diseño; el kernel de Linux mantiene cachés de archivos en memoria. Cuando estás ejecutando Claude Code, que lee y escribe archivos constantemente, esto se acumula rápido.
Antes de darte cuenta, VMMem está consumiendo 10GB, 15GB de RAM. Windows se queda sin memoria y mata la VM de WSL2 a la fuerza.
Cómo Verificar
Abre el Administrador de Tareas de Windows y mira el uso de memoria de VMMem. Si supera el 50% de tu RAM física, es una señal de alarma.
# También puedes verificar desde PowerShell
Get-Process vmmem -ErrorAction SilentlyContinue | Select-Object WorkingSet64
¿Por Qué la Ausencia de .wslconfig Causa Desconexiones de WSL2?
Por defecto, WSL2 puede usar hasta el 50% de tu memoria física (documentación de Microsoft). En una máquina de 16GB, eso son 8GB disponibles para WSL2.
Ejecuta Claude Code junto con VS Code, un navegador y Docker, y agotarás la memoria rápidamente.
Solución: Establecer Límites de Memoria con .wslconfig
Crea o edita %UserProfile%\.wslconfig en el lado de Windows.
[wsl2]
memory=8GB
swap=4GB
localhostForwarding=true
[experimental]
autoMemoryReclaim=dropcache
sparseVhd=true
autoMemoryReclaim=dropcache le dice a WSL2 que libere inmediatamente la memoria caché en lugar de acumularla. Disponible desde WSL 1.3.10. También puedes usar gradual (libera lentamente cuando está inactivo), pero dropcache es más agresivo y mejor para cargas de trabajo con mucho I/O de archivos como Claude Code. sparseVhd=true reduce automáticamente el disco virtual cuando se libera espacio.
El archivo va en C:\Users\<TuNombreDeUsuario>\.wslconfig.
# Crearlo desde PowerShell
notepad "$env:USERPROFILE\.wslconfig"
Después de guardar, reinicia WSL para aplicar los cambios. Ten en cuenta la regla de los 8 segundos: WSL necesita unos segundos para detenerse completamente antes de aplicar la nueva configuración.
wsl --shutdown
La nueva configuración toma efecto la próxima vez que abras WSL.
| RAM Física | memory recomendado | swap recomendado | Razonamiento |
|---|---|---|---|
| 16GB | 6GB | 4GB | Dejar 10GB para Windows |
| 32GB | 12GB | 8GB | Margen cómodo |
| 64GB | 24GB | 8GB | Espacio de sobra |
Una buena regla general es asignar 1/3 a 1/2 de tu RAM física a WSL2. Claude Code en sí no consume mucha memoria, pero combínalo con builds de Node.js y compilación de TypeScript y el uso se dispara rápido. Mejor ser conservador.
¿Por Qué WSL2 Se Rompe Después de Suspensión o Hibernación?
Cuando tu PC despierta de suspensión o hibernación, la VM de WSL2 a veces no se reanuda limpiamente. El stack de red es especialmente frágil.
Después de reanudar, Claude Code puede fallar al alcanzar la API, o la red de WSL puede estar completamente rota.
Solución
Si las cosas están inestables después de reanudar, reinicia WSL.
wsl --shutdown
Luego vuelve a abrir WSL. Tu sesión de Claude Code se perderá, pero si tienes un CLAUDE.md bien mantenido y commits recientes en git, la recuperación es rápida.
Si los problemas de red después de suspensión ocurren frecuentemente, prueba networkingMode=mirrored en tu .wslconfig. Esto refleja el stack de red de WSL2 con Windows y puede mejorar la recuperación de red después de reanudar (requiere Windows 11 22H2+).
[wsl2]
networkingMode=mirrored
Ten en cuenta que el modo mirrored tiene problemas conocidos — la compatibilidad con Docker Desktop y configuraciones VPN puede verse afectada. Pruébalo y revierte si encuentras problemas.
¿Pueden las Builds de Windows Insider Causar Desconexiones de WSL2?
Si estás en el Programa Windows Insider (canal Dev / Canary), la estabilidad de WSL2 puede sufrir.
Por ejemplo, la build de Windows 10.0.26200 es una preview del canal Canary con cambios frecuentes de Hyper-V. Como WSL2 se ejecuta sobre Hyper-V, se ve directamente afectado. Las desconexiones frecuentes en el canal Canary están bien documentadas en GitHub Issues — volver a la versión estable es la opción más segura.
Cómo Verificar
# Verifica tu número de build de Windows
winver
Si tu número de build es superior al de la versión estable (serie 26100), estás en una build Insider.
Solución
- Reporta desconexiones de WSL a través del Feedback Hub: Microsoft prioriza el feedback de Insiders
- Si la estabilidad es tu prioridad, cambia al canal Release Preview o abandona el Programa Insider por completo
- Mantén WSL actualizado:
wsl --update
¿Puede un Kernel WSL Desactualizado Causar Desconexiones?
Una versión antigua del kernel de WSL2 puede tener bugs conocidos que causan desconexiones.
wsl --version
Esto muestra tu versión de WSL y la versión del kernel. Mantenlos actualizados.
wsl --update
A marzo de 2026, el kernel más reciente de WSL2 es 6.6.114.1. Si tu versión del kernel es más antigua, actualizar puede corregir bugs de estabilidad conocidos. Consulta las notas de lanzamiento del kernel WSL para ver los cambios.
¿Cómo Proteges Tu Trabajo Cuando WSL2 Se Cae?
No puedes prevenir completamente las desconexiones de WSL2. Así que también necesitas una estrategia para minimizar el daño.
Mantén Tu CLAUDE.md Actualizado
Claude Code lee CLAUDE.md al inicio de cada sesión. Escribe ahí el contexto de tu proyecto y la tarea actual para que las nuevas sesiones puedan continuar donde te quedaste.
# CLAUDE.md
## Project overview
- Next.js 16 + App Router
- TypeScript strict mode
## Current work
- Implementing feature X. Editing `src/components/Feature.tsx`
Haz Commits en Git Frecuentemente
Haz commits temprano, haz commits seguido. Incluso commits de trabajo en progreso previenen la pérdida de código en una desconexión. Puedes decirle a Claude Code que "haga commit en buenos puntos de parada" como parte de tu flujo de trabajo.
Usa tmux / screen (Ayuda Limitada)
Los multiplexores de terminal sobreviven a desconexiones SSH, pero si la VM de WSL2 en sí se cae, tmux cae con ella. Ayudan con caídas transitorias de red pero no con fallos a nivel de VM.
Preguntas Frecuentes
¿Por qué VMMem usa tanta memoria?
WSL2 se ejecuta en una máquina virtual Hyper-V, y VMMem representa su uso de memoria en el lado de Windows. El kernel de Linux mantiene cachés de archivos en RAM por diseño. Con las constantes lecturas y escrituras de Claude Code, esta caché crece rápido y no se devuelve a Windows sin autoMemoryReclaim configurado.
¿Cómo evito que WSL2 se desconecte?
Configura un límite de memoria (ej. memory=8GB) y tamaño de swap en .wslconfig, y agrega autoMemoryReclaim=dropcache bajo [experimental]. Si estás en una build Windows Insider, considera cambiar al canal estable.
¿Una desconexión de WSL2 borra mi trabajo en Claude Code?
Sí, el contexto de tu sesión se pierde. Mitiga esto diseñando tu CLAUDE.md para registrar el estado del trabajo y haciendo commits en git frecuentemente.
¿Cuál es la diferencia entre autoMemoryReclaim "gradual" y "dropcache"?
gradual libera memoria caché lentamente cuando la VM está inactiva. dropcache la libera inmediatamente. Para cargas de trabajo con mucho I/O de archivos como Claude Code, dropcache es más efectivo. Ten en cuenta que gradual tiene problemas de compatibilidad conocidos con zswap — cambia a dropcache si experimentas problemas.
¿Debería usar networkingMode=mirrored?
Pruébalo si pierdes conectividad de red frecuentemente después de suspensión/reanudación. Sin embargo, puede causar problemas con Docker Desktop y configuraciones VPN. Empieza con el modo NAT predeterminado y cambia solo si los problemas de red persisten.
¿Cuál es la diferencia entre WSL1 y WSL2?
WSL1 traduce llamadas al sistema Linux en el kernel de Windows. WSL2 ejecuta un kernel Linux real en una VM ligera. Para Claude Code con su intenso I/O de archivos y builds de Node.js, WSL2 ofrece mejor compatibilidad — pero su arquitectura de VM significa que necesitas .wslconfig para gestionar la memoria.
¿Cómo mantengo Claude Code estable durante sesiones largas en WSL2?
Combina optimización del costo de tokens con gestión de sesiones largas. Monitorea VMMem en el Administrador de Tareas — si supera el 40% de tu RAM física, reinicia WSL con wsl --shutdown antes de que se caiga solo.
Conclusión
Las desconexiones de WSL2 mientras usas Claude Code se reducen a cinco causas principales:
- Inflación de memoria de VMMem — Establece límites de memoria en
.wslconfig - Sin .wslconfig configurado — Crea uno inmediatamente
- Corrupción de VM por suspensión/reanudación — Reinicia con
wsl --shutdown - Inestabilidad de Windows Insider Build — Considera el canal estable
- Kernel WSL desactualizado — Ejecuta
wsl --update
Y como las desconexiones no se pueden eliminar por completo, mantén tu CLAUDE.md y haz commits en git frecuentemente para minimizar el radio de impacto. Claude Code y WSL2 son una combinación poderosa, pero esta pequeña preparación marca toda la diferencia.
Para problemas no relacionados con WSL, consulta la Guía Completa de Solución de Problemas de Claude Code. Si estás configurando Docker en WSL2, mira Claude Code × Docker: Guía de Entorno de Desarrollo.