TL;DR Vuelve a la conversación con
claude --resumeen la misma carpeta y actualiza conclaude updatea la 2.1.289 o posterior: ahí están las diez correcciones. Si el mensaje menciona el fullscreen renderer,/tuite dice en qué renderer arrancas la próxima vez.
"Claude Code exited after an unrecoverable interface error" es el mensaje con el que Claude Code se cierra cuando su interfaz de terminal lanza un error del que no puede recuperarse. No es la API ni el modelo: es el código que dibuja la pantalla, en cualquiera de los dos renderers. La sesión termina en ese instante, con el proceso saliendo con código 1, pero la conversación ya estaba escrita en disco. Entre el 17 de septiembre y el 3 de octubre de 2026, el changelog corrigió diez causas distintas de este mismo mensaje.
El texto completo, tal como lo documenta Anthropic. La segunda frase solo aparece si el error llegó mientras arrancaba el fullscreen renderer:
Claude Code exited after an unrecoverable interface error (<error>). It happened while the fullscreen renderer was starting, so the next launch will use the classic renderer (CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 forces that any time).
Lo que hay entre paréntesis es el error interno de JavaScript que rompió el renderizado. Lo he leído en el código de la 2.1.305: el bucle de la interfaz corre dentro de un try, y cuando una excepción escapa, Claude Code imprime este mensaje con el message del error, lo registra como unhandled_rejection y sale con código 1. Por eso en VS Code o en el Agent SDK lo que suele verse por fuera es Claude Code process exited with code 1: el mensaje real está en la salida del propio Claude Code. Antes de la 2.1.236, ni eso: la sesión desaparecía sin imprimir nada.
Diez causas, diez versiones
Una misma frase para fallos que no tienen nada que ver entre sí. Según el changelog:
| Versión | Qué lo provocaba | Renderer |
|---|---|---|
| 2.1.275 | Teclear rápido o mantener una tecla pulsada con el desplegable de / abierto |
Fullscreen |
| 2.1.277 | Un prompt con códigos de color de terminal, por ejemplo uno recuperado del historial o cargado desde el editor externo | Los dos |
| 2.1.277 | Máquinas lentas o muy cargadas, al aparecer el primer spinner | Los dos |
| 2.1.277 | Reanudar una sesión cuyo transcript guarda un resumen de stop hook sin la lista de hooks bien formada | Los dos |
| 2.1.280 | Sesiones largas con la lista de mensajes en caché dañada (ahora se reconstruye) | Fullscreen |
| 2.1.281 | Mientras Claude Code reintentaba una petición a la API | Los dos |
| 2.1.287 | Máquinas lentas u ocupadas, con una tecla de scroll mantenida en una conversación larga | Fullscreen |
| 2.1.288 | Abrir el diálogo de tareas en segundo plano mientras un plugin o un mod mostraba filas encima del prompt | Fullscreen |
| 2.1.289 | Un valor escrito por el hook ui.render de un mod hacía fallar una fila al dibujarla |
Los dos |
| 2.1.289 | Una región de plugin sin altura que no dejaba de crecer | Los dos |
Cuatro de las diez son del fullscreen renderer, el predeterminado para quien empezó a usar Claude Code a partir del 6 de mayo de 2026, y que sigue en research preview. Dos tienen que ver con máquinas lentas, una con lo que pegas en el prompt y una con reanudar: esa última es la que importa en el paso 3.
Cuando el mensaje habla del fullscreen renderer
Si la segunda frase está, el fallo llegó antes de que el fullscreen terminara de arrancar. Para Claude Code una sesión fullscreen ha arrancado bien cuando dibuja su primer frame y después aguanta diez segundos o la cierras tú con /exit, Ctrl+C o Ctrl+D. Si no llega a eso, la siguiente sesión arranca en el renderer clásico y lo avisa con una línea:
- Tras un fallo:
Claude Code's fullscreen renderer didn't finish starting last time on this machine. En la siguiente sesión vuelve a intentar el fullscreen. - Tras dos fallos:
Claude Code's fullscreen renderer has repeatedly failed to start on this machine. Se queda en el clásico hasta que actualices o ejecutes/tui fullscreen, y deja de avisar.
El contador es por versión de Claude Code, y un arranque fullscreen correcto lo pone a cero. Las sesiones con CLAUDE_CODE_NO_FLICKER=1 no cuentan: esa variable fuerza el fullscreen aunque haya fallado. Para saber si estás en el clásico por este motivo, escribe /tui sin argumentos: la línea Current renderer: lleva la causa entre paréntesis. Así queda, montada con las cadenas que trae el código de la 2.1.305:
Current renderer: default (a fullscreen launch on this machine didn't finish starting last time; /tui fullscreen retries)
Cómo salir
1. Vuelve a la conversación
claude --resume
En la misma carpeta, abre el picker de sesiones; claude --continue retoma la última sin preguntar. Claude Code escribe cada turno en el transcript según ocurre, así que lo que había antes del cierre está ahí. Lo que puede faltar es el último turno a medias: la 2.1.286 corrigió sesiones reanudadas que perdían todos los turnos posteriores a una tanda de tool calls en paralelo cuando la sesión anterior se había cerrado por un fallo, y la 2.1.300, la primera entrada escrita tras reanudar cuando el fallo había dejado la última línea del transcript cortada.
2. Actualiza
claude --version
claude update
Por debajo de la 2.1.289 te falta alguna de las diez correcciones; por debajo de la 2.1.236, también el mensaje. Si claude update no te sube de versión porque instalaste con Homebrew o npm, cómo actualizar Claude Code tiene el comando de cada caso.
3. Si el propio --resume repite el error
Una de las diez causas vive en el transcript guardado y se reproduce cada vez que lo cargas: el resumen de stop hook malformado que corrigió la 2.1.277. Dos correcciones vecinas van por el mismo camino, aunque el changelog no las ata a este mensaje: un mensaje de sistema o un aviso de memoria sin su lista de archivos (2.1.280) y un marcador de compactación o una entrada de loop con campos incompletos (2.1.285) hacían fallar la reanudación. Primero actualiza y vuelve a reanudar: las versiones nuevas toleran esas entradas. Si con la versión al día sigue cayendo, el transcript está en ~/.claude/projects/<proyecto>/<id>.jsonl, en texto plano: muévelo a otro nombre, arranca una sesión limpia y pide a Claude que lea de ese archivo lo que necesites recuperar.
4. Si el fallo fue del arranque fullscreen
Decide tú el renderer en vez de dejar que lo decida el contador: /tui default guarda el clásico sin relanzar, /tui fullscreen vuelve a intentarlo. Para forzar el clásico en una sola sesión, sin tocar el ajuste:
CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 claude
Si la máquina es la que se queda sin aire (dos de las diez causas son de equipos lentos o cargados), la lista de arreglos para cuando Claude Code se cuelga o consume RAM empieza por /compact y --safe-mode.
No he provocado el fallo con una sesión real: las diez causas son del changelog, y el comportamiento del mensaje, de la documentación y del código de la 2.1.305.
Docs oficiales: Error reference · Fullscreen rendering, arranque fallido