MemoryLake
Volver a todos los artículos
News5 de noviembre de 2026·12 min de lectura

Sesión de Claude Code expirada: Qué deja de funcionar, qué permanece en tu máquina y la nueva forma de ver cuándo termina tu inicio de sesión (2026)

Vuelves a una terminal, escribes un prompt y Claude Code responde con una sola línea: Login expired · Please run /login. O inicias una sesión y ves una advertencia de que tu inicio de sesión expira en unos días. De cualquier manera, la primera preocupación es el trabajo realizado. ¿Se fueron las sesiones que tenías abiertas con el inicio de sesión? ¿Aún conserva Claude sus notas sobre tu proyecto?

La respuesta corta de la documentación de Anthropic es que el elemento expirado es la credencial. La página de errores indica que cuando la renovación falla, "Claude Code borró las credenciales guardadas". Tus archivos de sesión y la memoria automática se almacenan como archivos separados en tu directorio de configuración, y la documentación describe la solución como volver a iniciar sesión.

Esta guía cubre qué significa el mensaje, qué detiene, dónde viven tus sesiones y memoria mientras tienes la sesión cerrada, y qué cambió el 4 de noviembre de 2026, cuando Claude Code v2.1.318 comenzó a mostrar la fecha en que termina un inicio de sesión almacenado. Si usas más de una cuenta de Claude en Claude Code, lee primero nuestra guía sobre cuentas múltiples y CLAUDE_CONFIG_DIR, ya que iniciar sesión con una cuenta diferente cambia más que la credencial.

Qué cambió el 4 de noviembre

Las notas de la versión v2.1.318 enumeran tres cambios en la forma en que Claude Code informa sobre un inicio de sesión que está a punto de terminar o que ya lo ha hecho.

  • Una fecha de finalización legible. La versión "Añadió la fecha en que termina un inicio de sesión de claude.ai almacenado a claude auth status (loginExpiresAt) y a los resultados JSON de claude -p (credential_expires_at)".
  • Una advertencia temprana para scripts. También "Añadió una advertencia de una línea en stderr a la salida de texto de claude -p, comenzando 10 días antes de que termine un inicio de sesión de claude.ai almacenado".
  • Un fallo más claro. Se "Corrigió el fallo de inicio de sesión cuando un login de claude.ai almacenado alcanza su límite de tiempo: ahora lo indica, y en claude -p nombra a claude auth login y claude setup-token ".

La misma versión corrigió un problema relacionado: "Se corrigieron los trabajos que salían con Not logged in cuando otra terminal o host vuelve a iniciar sesión en la misma cuenta y organización en el mismo home". La página de errores explica la causa para versiones anteriores: "Antes de la v2.1.318, Claude Code eliminaba el inicio de sesión almacenado durante ese inicio de sesión, antes de guardar el nuevo".

Antes de esta versión, la advertencia en la que podías confiar era la del inicio en una sesión interactiva. Ahora, un script o trabajo programado que llame a claude -p también puede ver la fecha y advertirte antes de que el trabajo se detenga.

Qué significa Login expired

La referencia de errores de Anthropic describe el estado con precisión: "Claude Code intentó renovar tu inicio de sesión de claude.ai guardado y el servicio OAuth rechazó el token de actualización almacenado, por lo que Claude Code borró las credenciales guardadas. Después de eso, cada solicitud al modelo se detiene localmente con este mensaje antes de llegar a la API, porque solo /login puede crear nuevas credenciales".

Tres detalles en esa descripción son importantes.

Se aplica al inicio de sesión de claude.ai. Ese es el inicio de sesión que creas con /login para un plan Pro, Max, Ultra, Team o Enterprise. Anthropic añade: "Las sesiones autenticadas con una clave API, CLAUDE_CODE_OAUTH_TOKEN o un proveedor externo no usan el inicio de sesión guardado y nunca ven este mensaje".

Claude Code detiene la solicitud por sí mismo. Las solicitudes al modelo se detienen antes de llegar a la API. Reintentar sin iniciar sesión devuelve el mismo mensaje en cada solicitud.

No es lo mismo que un token revocado. La documentación separa ambos: "Este no es el mismo estado que un token OAuth revocado o expirado. Esos mensajes informan de un rechazo devuelto por la API. El propio Claude Code produce Login expired para un inicio de sesión que ya no pudo renovar, por lo que no envía ninguna solicitud".

El mismo estado en scripts y el SDK

En el modo no interactivo y el Agent SDK, la redacción cambia. Anthropic da el mensaje como Failed to authenticate: OAuth session expired and could not be refreshed, con el código de error estructurado authentication_failed. Busca esta redacción en tus registros en lugar de la interactiva.

Mensajes que parecen similares

Vale la pena distinguir algunos vecinos en la página de errores:

  • Not logged in. "No hay ninguna credencial válida disponible para esta sesión". La solución es la misma, pero la causa puede ser una variable de entorno faltante en lugar de un inicio de sesión expirado.
  • Anthropic profile login expired. Un mensaje de inicio de sesión expirado que termina con una instrucción para volver a autenticar tu perfil de Anthropic pertenece a una credencial diferente, la que utiliza la CLI ant.
  • Account on hold. Cuando la renovación falla porque la propia cuenta está suspendida, Anthropic dice que Claude Code muestra un mensaje separado en su lugar.

La advertencia que recibes antes de que expire

La guía de autenticación de Anthropic describe la señal previa: "Cuando el inicio de sesión que creaste con /login está a tres días de expirar, Claude Code muestra una advertencia al inicio: Your login expires in 3 days · run /login to renew".

Esa advertencia no detiene nada. En palabras de Anthropic, "La advertencia es informativa y nunca bloquea una solicitud: la autenticación sigue funcionando hasta que el inicio de sesión realmente expira". También solo aparece para el inicio de sesión de claude.ai. La guía dice que no se muestra "cuando un proveedor de nube, ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN o apiKeyHelper suministra la credencial".

Puedes comprobar el estado tú mismo. Ejecuta /status. Cuando el inicio de sesión guardado es tu credencial activa y ya no se puede renovar, la documentación dice que la fila Login indica Expired — log in again, junto con la organización y el correo electrónico guardados para ese inicio de sesión. Fuera de una sesión, claude auth status ahora incluye la fecha de finalización como loginExpiresAt.

Qué se detiene mientras tu sesión está cerrada

Cada solicitud al modelo en esa sesión

Debido a que cada solicitud al modelo se detiene localmente, Claude no puede responder hasta que vuelvas a iniciar sesión. La sesión permanece abierta y tus turnos anteriores siguen en pantalla.

Sesiones que se ejecutan sin ti

Este es el caso que Anthropic destaca. "Renovar temprano es más importante para las sesiones que se ejecutan sin supervisión. Una sesión en segundo plano en vista de agente o una sesión de Remote Control que sobreviva al inicio de sesión deja de progresar una vez que la credencial expira y no puede recuperarse hasta que vuelvas a iniciar sesión".

Si dejas sesiones en segundo plano funcionando durante la noche, o manejas una sesión desde tu teléfono a través de Remote Control, un inicio de sesión que expira es el punto donde se detienen. Nuestra guía sobre la vista de agente de Claude Code explica cómo esas sesiones en segundo plano comparten el contexto de tu proyecto.

Scripts y trabajos programados

Un trabajo de claude -p iniciado con el login de claude.ai se detiene con el mensaje no interactivo mencionado anteriormente. A partir de la v2.1.318, la advertencia de stderr te da diez días de aviso, y el resultado JSON incluye credential_expires_at para los scripts que quieran verificarlo.

Qué permanece en tu máquina

La credencial expirada y tu trabajo se almacenan en lugares diferentes.

Tu inicio de sesión. La sección de credenciales de Anthropic dice que en macOS, "las credenciales se almacenan en el Keychain cifrado de macOS"; en Linux, están en ~/.claude/.credentials.json. Eso es lo que borra el fallo de renovación.

Tus transcripciones de sesión. La documentación de sesiones de Anthropic dice: "Claude Code almacena las sesiones en ~/.claude/projects/<cwd-codificado>/*.jsonl". La página de errores describe el borrado de credenciales, no de estos archivos. Después de volver a iniciar sesión, /resume y --continue los leen como antes. Nuestra guía para encontrar el historial de sesiones de Claude Code explica la estructura de carpetas.

Tu memoria automática. La documentación de memoria la ubica en el mismo directorio de configuración: "Cada proyecto tiene su propio directorio de memoria en ~/.claude/projects/<proyecto>/memory/". Nuestra guía sobre la memoria automática de Claude Code cubre lo que se carga desde allí al inicio de una sesión.

Tus instrucciones y ajustes. Los archivos CLAUDE.md y settings.json también son archivos, en tu repositorio y en tu directorio de configuración.

Una advertencia sobre las transcripciones: la guía del directorio .claude dice "Las transcripciones y el historial no están cifrados en reposo. Los permisos de archivos del SO son la única protección". Esto es cierto tanto si has iniciado sesión como si no.

Vuelve a iniciar sesión con la misma cuenta

La solución que da Anthropic es corta: "Ejecuta /login para volver a iniciar sesión. Reintentar sin iniciar sesión muestra el mismo mensaje en cada solicitud".

Inicia sesión con la cuenta a la que pertenecen las sesiones. Iniciar sesión con una cuenta diferente en el mismo directorio de configuración cambia la credencial pero mantiene las mismas carpetas locales, por lo que esa cuenta recogerá tus sesiones y memoria automática. Las sesiones en la nube están vinculadas a tu cuenta de claude.ai, lo cual es otra razón para usar la misma; nuestra guía sobre por qué Claude Code olvida entre máquinas cubre lo que las sesiones en la nube llevan y lo que no.

Si has iniciado sesión desde otra ventana de Claude Code, es posible que no necesites hacer nada en la que está detenida. La página de errores dice que si inicias sesión "en otra ventana de Claude Code que use el mismo directorio de configuración, una sesión interactiva que muestre este mensaje comenzará a usar ese inicio de sesión por sí sola".

Cuando reanudas una sesión antigua después de iniciar sesión, la primera solicitud puede tener que volver a leer mucho contexto. Nuestra guía sobre la advertencia de uso al reanudar explica cuándo Claude Code advierte sobre eso y qué hacer en su lugar.

Para automatización: una credencial que no depende del inicio de sesión del navegador

El consejo de Anthropic para ejecuciones no interactivas es iniciar sesión una vez de forma interactiva en el mismo entorno y luego volver a ejecutar el comando. "Para la automatización que no puede iniciar sesión de forma interactiva, autentícate con ANTHROPIC_API_KEY o genera un token de larga duración con claude setup-token ".

El token de larga duración tiene sus propios límites. La guía de autenticación lo describe como "un token OAuth de un año" y añade: "Solo puede realizar solicitudes al modelo, por lo que no puede establecer sesiones de Remote Control ni obtener conectores de claude.ai". También dice que el comando "no guarda el token en ningún lugar", por lo que debes guardarlo tú mismo, por ejemplo, en el almacén de secretos de tu sistema de CI.

Recuerda el orden de las credenciales si añades una de estas. La lista de precedencia de Anthropic coloca a ANTHROPIC_API_KEY y CLAUDE_CODE_OAUTH_TOKEN por delante del inicio de sesión por suscripción de /login, por lo que una clave olvidada en tu perfil de shell puede cambiar qué credencial utiliza una sesión. /status muestra la credencial en uso.

Lo que la gente intenta primero

Reintentar el prompt. La solicitud se detiene antes de llegar a la API, por lo que un reintento devuelve el mismo mensaje.

Reiniciar la sesión. Reiniciar no crea una nueva credencial. Solo lo hace /login, o otra ventana de Claude Code que inicie sesión con el mismo directorio de configuración.

Eliminar la carpeta de configuración para limpiar el login. Eso elimina tus transcripciones de sesión y memoria automática junto con el archivo de credenciales. La solución documentada es /login.

Iniciar sesión con cualquier cuenta que ofrezca el navegador. Si es una cuenta diferente, ahora usará tus sesiones y memoria locales. Verifica /status después de iniciar sesión.

Asumir que la advertencia de inicio bloqueará el trabajo. No lo hace. Es un recordatorio, y el trabajo continúa hasta que el inicio de sesión realmente termina.

La solución: Verifica la fecha, renueva temprano, mantén vivo el trabajo desatendido

Paso 1: Verifica cuándo termina tu inicio de sesión

Ejecuta /status en una sesión, o claude auth status desde una terminal. En la v2.1.318 o posterior, la salida incluye la fecha de finalización. Actualiza Claude Code si no la ves.

Paso 2: Renueva antes de que se ejecute el trabajo desatendido

Si las sesiones en segundo plano, las sesiones de Remote Control o los trabajos programados de claude -p se ejecutarán mientras no estés, ejecuta /login antes de irte en lugar de después de que se detengan. Para trabajos que se ejecutan sin nadie al teclado, usa ANTHROPIC_API_KEY o un token de claude setup-token, dentro de los límites mencionados anteriormente.

Paso 3: Vuelve a iniciar sesión en la misma cuenta y reanuda

Después de que aparezca el error, ejecuta /login con la cuenta a la que pertenecen las sesiones, confírmalo con /status y reanuda con /resume o --continue. Tus transcripciones y memoria automática están donde las dejaste.

Configuración en MemoryLake

Un inicio de sesión expirado es una interrupción corta, pero muestra cuánto de tu contexto de trabajo reside en una sola máquina, en un solo directorio de configuración, detrás de un solo inicio de sesión. Si también cambias de máquina o de herramientas, las decisiones y convenciones en esos archivos se quedan atrás a menos que las copies.

MemoryLake es una capa de memoria para mantener esos hechos en un lugar que tú mantienes, disponible para los asistentes que conectes, como ChatGPT, Claude Code y Codex.

Tú mismo escribes las entradas, con tus propias palabras. No se lee, escribe ni elimina nada de tus sesiones de Claude Code, tu directorio de configuración, tus credenciales, tus archivos CLAUDE.md, tu memoria automática o el almacén de cualquier proveedor. /login, claude auth status y el manejo de credenciales de Claude Code siguen funcionando de la manera en que Anthropic los describe.

Paso 1: Crea una clave API

Inicia sesión y genera una clave desde el panel de control. La clave pertenece a tu espacio de trabajo de MemoryLake y es independiente de tu inicio de sesión de Claude.

La consola de MemoryLake mostrando la pantalla de claves API, donde se crea y copia una nueva clave para su uso en un agente
La consola de MemoryLake mostrando la pantalla de claves API, donde se crea y copia una nueva clave para su uso en un agente

Paso 2: Sube tus primeras memorias

Comienza con las decisiones y convenciones del proyecto que querrías después de cualquier interrupción: qué hace el código, qué has descartado, qué sigue. Un punto por entrada.

El espacio de trabajo de MemoryLake con los primeros documentos subidos, enumerando cada archivo a medida que se convierte en memoria buscable
El espacio de trabajo de MemoryLake con los primeros documentos subidos, enumerando cada archivo a medida que se convierte en memoria buscable

Paso 3: Conecta tu IA y agentes

Conecta Claude Code y cualquier otro asistente que utilices. Las entradas estarán disponibles después de que vuelvas a iniciar sesión, en otra máquina o en otra herramienta.

La pantalla de integraciones de MemoryLake que enumera los clientes de IA y los frameworks de agentes que se pueden conectar a la capa de memoria
La pantalla de integraciones de MemoryLake que enumera los clientes de IA y los frameworks de agentes que se pueden conectar a la capa de memoria

Qué cambia esto en la práctica

La primera diferencia es el tiempo de advertencia. Con la fecha de finalización en claude auth status y la advertencia de stderr de diez días para claude -p, puedes renovar según tu horario en lugar de enterarte por un trabajo detenido.

La segunda es una respuesta más tranquila al error. El mensaje trata sobre una credencial. Tus sesiones y memoria automática son archivos en el disco, y al iniciar sesión con la misma cuenta vuelven a estar a tu alcance.

La tercera es que hay menos que reconstruir cuando algo más grande cambia, como una nueva máquina o una nueva cuenta. Los hechos en los que confías no están solo en un directorio de configuración.

Mejores prácticas para los inicios de sesión de Claude Code

Lee la fecha de finalización. Usa claude auth status en la v2.1.318 o posterior.

Renueva antes de dejar cosas funcionando. Las sesiones en segundo plano y de Remote Control se detienen al expirar.

Vuelve a iniciar sesión con la misma cuenta. Una cuenta diferente en el mismo directorio utiliza las mismas sesiones y memoria locales.

Usa la credencial adecuada para la automatización. Una clave API o un token de claude setup-token, con sus límites documentados.

Cuidado con las variables de entorno perdidas. Tienen prioridad sobre /login en el orden de las credenciales.

No elimines la carpeta de configuración para arreglar un login. Contiene tus transcripciones y memoria automática.

Protege los archivos de transcripción. No están cifrados en reposo.

Conclusión

Login expired significa que Claude Code no pudo renovar tu inicio de sesión de claude.ai y borró la credencial guardada. Cada solicitud al modelo se detiene localmente hasta que ejecutes /login. Tus transcripciones de sesión, memoria automática y archivos de instrucciones son archivos separados en tu directorio de configuración, y la solución documentada es volver a iniciar sesión.

Lo que añade la v2.1.318 es el aviso: la fecha de finalización en claude auth status, un campo JSON para claude -p y una advertencia en stderr con diez días de antelación. Úsalo para renovar antes de que las sesiones desatendidas y los trabajos programados se detengan, e inicia sesión con la cuenta a la que pertenecen tus sesiones.

Preguntas frecuentes

¿Qué significa Login expired · Please run /login en Claude Code?

Claude Code intentó renovar tu inicio de sesión de claude.ai guardado, la renovación fue rechazada y se borraron las credenciales guardadas. Cada solicitud al modelo se detiene hasta que ejecutes /login.

¿Pierdo mis sesiones de Claude Code cuando mi inicio de sesión expira?

La documentación describe el borrado de la credencial. Las transcripciones de las sesiones se almacenan en ~/.claude/projects/ y puedes reanudarlas después de iniciar sesión de nuevo con la misma cuenta.

¿Cómo veo cuándo expira mi inicio de sesión de Claude Code?

A partir de la v2.1.318, claude auth status muestra la fecha de finalización como loginExpiresAt, y los resultados JSON de claude -p incluyen credential_expires_at. Las sesiones interactivas también advierten al inicio dentro de los tres días previos a la expiración.

¿Por qué se detuvo mi sesión en segundo plano durante la noche?

Anthropic indica que una sesión en segundo plano en la vista de agente o una sesión de Remote Control que sobreviva al inicio de sesión deja de progresar una vez que la credencial expira. Renueva con /login antes de dejarla funcionando.

¿Cómo evito que un trabajo de CI falle cuando el inicio de sesión expira?

Usa ANTHROPIC_API_KEY o un token de un año de claude setup-token. El token solo puede realizar solicitudes al modelo, por lo que no puede iniciar sesiones de Remote Control ni obtener conectores de claude.ai.

¿Muestra una clave API el mensaje Login expired?

No. Anthropic dice que las sesiones autenticadas con una clave API, CLAUDE_CODE_OAUTH_TOKEN o un proveedor externo no usan el inicio de sesión guardado y nunca lo ven.