“Your access token could not be refreshed. Please log out and sign in again” indica que el proceso actual de Codex ya no puede continuar con la sesión guardada. No demuestra por sí solo que el refresh token se haya reutilizado, revocado o invalidado al cambiar de cuenta. También puede ocurrir que Codex esté leyendo credenciales antiguas en otro equipo.
La solución fiable no consiste en cerrar sesión al azar en todos los navegadores. Hay que conservar el trabajo, localizar el proceso que falla, borrar las credenciales que ese proceso usa, volver a entrar una sola vez y comprobar el resultado en el mismo entorno.
Protege el estado del proyecto antes de tocar el login
Un error de autenticación no borra automáticamente los archivos que Codex ya ha modificado. El riesgo aparece al repetir la misma tarea en varias ventanas o al eliminar carpetas completas para “limpiar la caché”.
Antes de salir:
- revisa los cambios sin commit del repositorio;
- guarda el prompt no enviado y el error completo, sin datos privados;
- anota la hora y zona horaria, la superficie de Codex, la versión y la ruta del proyecto;
- registra la última acción que terminó correctamente;
- detén los intentos duplicados en App, CLI e IDE.
No compartas auth.json, access tokens, refresh tokens, API keys, OTP, cookies ni un HAR sin limpiar. La documentación de autenticación de OpenAI explica que auth.json, cuando se usa almacenamiento en archivo, contiene tokens de acceso y debe tratarse como una contraseña.
Encuentra el host que guarda la sesión
La pantalla visible no siempre coincide con el equipo que ejecuta Codex. Una ventana de VS Code puede usar un extension host por Remote SSH. La terminal puede estar dentro de WSL o de un contenedor. Un agente externo puede conservar un perfil OAuth propio aunque la CLI independiente esté sana.
| Superficie | Límite de credenciales que debes revisar | Lo que no demuestra que esté limpio |
|---|---|---|
| Codex App local | Perfil activo de la App y almacén local | Salir de ChatGPT en otro perfil del navegador |
| Codex CLI | Usuario del sistema y CODEX_HOME de esa shell | Que ChatGPT web funcione |
| Extensión de IDE | Extension host local o remoto | Reinstalar solo la interfaz del editor |
| WSL, SSH, contenedor o VM | Home o keyring dentro de ese entorno | Salir en el equipo anfitrión |
| Harness o gateway externo | Perfil de autenticación propio | Que la CLI de Codex funcione aparte |
OpenAI documenta que la CLI y la extensión de IDE pueden compartir credenciales guardadas. Estas pueden vivir en ~/.codex/auth.json o en el almacén de credenciales del sistema operativo. Por eso conviene usar primero el logout admitido: borrar un archivo supuesto no sirve si el proceso usa un keyring, otro usuario o un host remoto.
Reconstruye la sesión de CLI e IDE
Ejecuta los comandos en el entorno donde vive el proceso que muestra el error. Comprueba primero el método activo:
bashcodex login status
El resultado indica si hay credenciales y qué modo de autenticación está activo. Puede revelar que el usuario esperaba acceso con ChatGPT pero la shell usa una API key, o que el IDE remoto corre con otro usuario del sistema. Un status correcto no prueba todavía que una solicitud real funcione.
Elimina las credenciales guardadas mediante la ruta compatible y vuelve a entrar:
bashcodex logout codex login
En el navegador, confirma la cuenta de ChatGPT y el workspace previstos. Después ejecuta de nuevo codex login status.
La referencia oficial de Developer commands describe codex logout como el comando que elimina credenciales guardadas tanto de ChatGPT como de API key. Reinicia completamente el IDE después del nuevo login: un extension host que ya estaba abierto puede conservar estado antiguo aunque la caché compartida haya cambiado.
En Codex App, abre el menú del perfil, confirma la cuenta o el estado de API key y cierra sesión dentro de la App. Sal por completo, vuelve a abrirla e inicia sesión con el método previsto. Cerrar chatgpt.com en un navegador no demuestra que el almacén local de la App se haya vaciado.
Una API key tampoco es una reparación universal del login de ChatGPT. Se factura por la cuenta de Platform y algunas funciones que dependen del workspace o de servicios cloud pueden no estar disponibles. Primero decide qué ruta de autenticación necesitabas recuperar.
Cuando el nuevo inicio de sesión no termina
Si las credenciales antiguas ya se borraron pero el navegador no devuelve el control a Codex, el problema ha cambiado de fase.
En una CLI remota o sin interfaz, el endpoint de callback local puede no estar disponible. Cuando la cuenta o el workspace lo permiten, usa device code:
bashcodex login --device-auth
Abre el enlace, inicia sesión e introduce el código de un solo uso. No se lo envíes a nadie. Si la opción está desactivada, debe habilitarla el usuario en su seguridad o el administrador del workspace.
En una red corporativa con proxy TLS o autoridad raíz privada, la guía oficial ofrece CODEX_CA_CERTIFICATE para un bundle PEM de confianza. Además, una ejecución directa de codex login escribe codex-login.log en el directorio configurado. Ese log ayuda a separar callback, certificado y login del navegador, pero hay que eliminar tokens, correos, identificadores de workspace y rutas privadas antes de compartirlo.
Un entorno administrado puede obligar a usar ChatGPT o API key y limitar ChatGPT a un workspace concreto. Si una cuenta recién elegida se rechaza o sale de inmediato, deja de rotar archivos locales y pide al administrador que revise membership, provisioning, método permitido y workspace esperado.
Workload identity es otra excepción. Si el entorno del proceso entrega la identidad, OpenAI indica que codex login y codex logout se rechazan. La reparación corresponde al proveedor de identidad, la regla de federación o el runtime.

Comprueba una tarea, no solo la pantalla de login
Una recuperación completa tiene tres señales:
codex login statusmuestra el método previsto.- App o IDE muestra la cuenta y el workspace correctos cuando esa información está disponible.
- Una tarea pequeña termina en el mismo proyecto y entorno que falló.
Empieza con una acción de lectura, como resumir un archivo no sensible. No reanudes inmediatamente una escritura grande. Si la prueba funciona, revisa los cambios existentes y continúa la tarea original.

Si aparece un error distinto, cambia también el diagnóstico. HTTP 429 pertenece a los límites de Codex; una conexión, herramienta o proceso bloqueado pertenece al diagnóstico de timeout; una solicitud de teléfono, MFA o device verification pertenece a la guía de verificación de Codex.
Escala sin entregar secretos
Si el login nuevo se completó en el host correcto y el mismo error vuelve, prepara un paquete mínimo:
- error redactado, hora y zona horaria;
- App, CLI o IDE y versión;
- sistema operativo y contexto local, WSL, SSH, contenedor o VM;
- método activo, sin token ni identificador completo de cuenta;
- resultado del logout y del nuevo flujo de navegador o dispositivo;
- resultado de una prueba pequeña;
- extracto saneado de
codex-login.logsolo si falló el login nuevo.
No adjuntes auth.json, tokens, API keys, OTP, cookies, un HAR completo ni capturas con secretos. La recuperación no termina cuando reaparece el formulario de acceso, sino cuando las credenciales nuevas del host correcto están asociadas a la cuenta y al método previstos y pueden completar una tarea acotada de Codex.



