Índice
¿Claude Code te ha lanzado de repente un mensaje como este y te ha exigido iniciar sesión?
Not logged in · Please run /login
Invalid API key · Fix external API key
OAuth token has expired · Please run /login
API Error: 400 ... This organization has been disabled.
Son errores de "fallo de autenticación (¿quién eres?)", que suelen aparecer como 401/403. Lo frustrante es lo desconcertantes que resultan: "estoy pagando y aun así me rechaza" o "ayer funcionaba y ahora de golpe me pide iniciar sesión". Pero la mayoría de las causas son de manual, y una vez que conoces el orden de comprobación, la solución es rápida.
Lo más importante por delante. (1) El problema de autenticación número uno es una variable de entorno ANTHROPIC_API_KEY que anula silenciosamente tu inicio de sesión de suscripción (Pro/Max), lo que se convierte en la verdadera causa de cargos de pago por uso inesperados, "organization disabled" e "Invalid API key". (2) El punto de partida es siempre /status para ver "qué credencial está activa ahora mismo". (3) En caso de duda, "unset la clave perdida → /logout → /login" para entrar de forma limpia.
Las credenciales tienen una "precedencia"
— la que está más arriba gana, así que una API key de entorno anula tu suscripción
ANTHROPIC_AUTH_TOKEN (gateways)
ANTHROPIC_API_KEY ← variable de entorno
esta gana = pago por uso
apiKeyHelper / 5. CLAUDE_CODE_OAUTH_TOKEN
/login)
lo que realmente quieres
Si ANTHROPIC_API_KEY queda en tu entorno, tiene precedencia sobre la suscripción.
Primero comprueba con /status → si no la necesitas, unset ANTHROPIC_API_KEY.
1. Qué te está diciendo este error
Autenticación significa "demostrar quién eres". Claude Code demuestra que eres "tú" mediante tu inicio de sesión OAuth de suscripción, una API key o credenciales de la nube. Cuando esa prueba falla, se te rechaza con 401 (authentication_error) o 403 (forbidden). Los mensajes representativos y sus significados:
| Mensaje | Significado |
|---|---|
| Not logged in · Please run /login | No hay credencial válida → /login |
| Invalid API key · Fix external API key (versiones antiguas: "· Please run /login") | Una clave de una variable de entorno o de apiKeyHelper fue rechazada por la API |
| This organization has been disabled | Una API key antigua de una organización deshabilitada te está anulando |
| OAuth token revoked / has expired · Please run /login | Sesión cerrada en otro lugar / revocada por un administrador / fallo de renovación automática |
| API Error: 403 ... forbidden ... Request not allowed | Suscripción inactiva, falta de rol en la Console o interferencia de un proxy |
El hábito clave: antes de culparte a ti mismo, ejecuta /status para ver "qué credencial está activa ahora mismo". La mayoría de los errores de autenticación provienen de que se ha seleccionado una credencial no deseada, y el principal sospechoso es la "anulación por API key" de la siguiente sección.
2. La gran trampa: una API key anula tu suscripción
La documentación oficial indica que Claude Code elige UNA credencial por "precedencia" (ver el hero). El truco está en que la variable de entorno ANTHROPIC_API_KEY se sitúa POR ENCIMA de tu inicio de sesión de suscripción (Pro/Max). Dicho de otro modo:
La explicación oficial (parafraseada)
"Incluso con una suscripción activa, si ANTHROPIC_API_KEY está definida en tu entorno, esta tiene precedencia una vez aprobada. Si esa clave pertenece a una organización deshabilitada o caducada, la autenticación falla. Ejecuta unset ANTHROPIC_API_KEY para volver a tu suscripción y comprueba con /status cuál está activa."
Esta anulación produce tres síntomas "desconcertantes". (1) Cargos de pago por uso inesperados: lo que debería ser una suscripción de tarifa plana acaba facturándose por token a través de la API key (se han reportado facturas sorpresa cuantiosas). (2) This organization has been disabled: la clave sobrante pertenecía a una organización antigua deshabilitada. (3) Invalid API key: la clave está caducada o es incorrecta. Ninguno de estos es "un problema con tu inicio de sesión"; son "un problema de una clave perdida que ocupa tu entorno".
De dónde viene la clave: un export ANTHROPIC_API_KEY=... en ~/.zshrc / ~/.bashrc / ~/.profile; un .env leído por direnv, dotenv o el terminal de tu IDE; un resto de un trabajo o proyecto anterior; un entorno de CI. En Windows, el perfil de PowerShell ($PROFILE) o las variables de entorno de usuario. Detéctala con /status y env | grep ANTHROPIC; corrígela con:
# Anular temporalmente y arrancar
unset ANTHROPIC_API_KEY
claude
# Corrección permanente: elimina la línea export de la config de tu shell / .env, luego confirma con /status
Nota: en modo interactivo se te pregunta una vez si quieres usar la clave, y tu elección se recuerda (cámbiala después con la opción "Use custom API key" en /config). A menos que quieras usar deliberadamente la API key, confirma con /status que la suscripción está activa.
3. Otras causas
Los problemas de autenticación distintos de la anulación también suelen tener causas fijas.
Tropiezos de autenticación más allá de la anulación
/logout → /login.claude doctor.c para copiar la URL, o define BROWSER.
"Me piden iniciar sesión cada vez" → sospecha primero del desfase del reloj o el Keychain.
"Rechazado con 403" → sospecha de suscripción inactiva, rol en la Console o proxy.
Saber dónde residen las credenciales también acelera la recuperación. macOS: Keychain; Linux: ~/.claude/.credentials.json (modo 0600); Windows: %USERPROFILE%\.claude\.credentials.json. Normalmente /login y /logout los gestionan, pero si el almacén se corrompe puedes eliminar este archivo para volver a autenticarte de forma limpia (avanzado).
4. El flujo de diagnóstico
Cuando te atasques con la autenticación, ve de arriba abajo. La mayoría de los casos se resuelven en el paso 3.
Aíslalo de arriba abajo
/status para ver qué credencial está activa (suscripción, API key o nube).env | grep ANTHROPIC (Windows: $PROFILE / variables de entorno de usuario) para encontrar una clave perdida.unset ANTHROPIC_API_KEY → reinicia. Hazlo permanente eliminando la línea export de la config de tu shell / .env./logout → cierra Claude Code → /login para una reautenticación limpia.claude doctor (macOS) / confirma tu rol en la Console (organizaciones).
La regla: "primero /status, luego a la caza de la clave perdida."
La mayoría de los casos se arreglan con solo quitar la clave que te estaba anulando.
5. Cómo distinguirlo de errores parecidos
"Rechazado / detenido" también puede tener causas ajenas a la autenticación. Dividir por el código HTTP es la forma fiable.
| Síntoma | Qué es realmente | Solución principal |
|---|---|---|
| 401 / 403 · Invalid API key · Not logged in | Este artículo = autenticación (problema de credencial) | /status → quitar la clave perdida → /login |
| usage limit reached | Cuota del plan agotada (la autenticación está bien) | Espera al reinicio; soluciones |
| 429 Request rejected | Límite de tasa (la anulación por una clave de nivel bajo puede provocar un 429) | Reduce el ritmo; comprueba también /status por si hay una clave perdida |
| 529 / 500 | Lado del servidor: sobrecarga / error interno | Espera y reintenta; soluciones |
| Credit balance is too low | Saldo prepago de la Console agotado (factura o cambia a suscripción) | Añade créditos, o /login a una suscripción |
Una regla mnemotécnica: 401/403 es el problema de "¿quién eres?" = autenticación. usage limit y Credit balance son problemas de "cantidad / saldo". 429 es tasa, 529/500 es del lado del servidor. Cabe destacar que una API key perdida provoca no solo "fallo de autenticación", sino también "cargos inesperados" y "un 429 en un nivel bajo", por lo que la respuesta a la confusión es siempre /status primero. Para otros errores comunes, consulta el resumen de errores.
6. Checklist de prevención
Una checklist para dejar de atascarte una y otra vez con la autenticación.
(1) Si usas la suscripción, no dejes ANTHROPIC_API_KEY en la config de tu shell / .env (cuidado con los restos de trabajos/proyectos antiguos). (2) Acostúmbrate a usar /status para confirmar la credencial activa antes de un trabajo importante. (3) Para CI, usa el CLAUDE_CODE_OAUTH_TOKEN de claude setup-token (o una API key explícita) en lugar del inicio de sesión interactivo. (4) Si te piden iniciar sesión cada vez, comprueba el reloj del sistema y el Keychain de macOS. (5) Para cuentas de organización, confirma el rol en la Console y el estado del plan. (6) En WSL/SSH, conoce el método de pegar el código.
Resumen
Los errores de autenticación/inicio de sesión de Claude Code (Not logged in / Invalid API key / organization disabled / OAuth token expired, etc.) son en su mayoría 401/403 = problemas de credencial. La verdadera causa más frecuente es "la variable de entorno ANTHROPIC_API_KEY anulando silenciosamente tu inicio de sesión de suscripción", lo que produce cargos de pago por uso inesperados, organization disabled e Invalid API key. Por eso el punto de partida es siempre /status para ver "qué credencial está activa".
Diagnostica con (1) /status -> (2) env | grep ANTHROPIC para cazar una clave perdida -> (3) unset + eliminar de la config del shell -> (4) /logout -> /login -> (5) reloj / Keychain / rol en la Console. La mayoría de los casos se arreglan con solo quitar la clave que te estaba anulando. Divide por 401/403 = autenticación, usage limit / Credit = cantidad-saldo, 429 = tasa, 529/500 = servidor para evitar la solución equivocada. Relacionados: usage limit, errores 529/500, resumen de errores de Claude Code.
Preguntas frecuentes
Q. Estoy pagando y aun así me sale "Invalid API key" u "organization has been disabled". ¿Por qué?
A. Casi con total seguridad, una variable de entorno ANTHROPIC_API_KEY está anulando tu inicio de sesión de suscripción. Si esa clave pertenece a una organización caducada o deshabilitada, te rechaza aunque tengas una suscripción activa. Encuéntrala con env | grep ANTHROPIC, ejecuta unset ANTHROPIC_API_KEY, luego /login y confirma con /status. Elimina también la línea export de la config de tu shell (.zshrc, etc.) o .env.
Q. Tengo una suscripción de tarifa plana pero me han facturado por token.
A. Esto también suele deberse a la anulación por ANTHROPIC_API_KEY. Cuando la API key tiene precedencia, el uso fluye hacia la facturación por token de la API en lugar de tu suscripción de tarifa plana. Confirma con /status que "la suscripción está activa"; si la API key está seleccionada, quítala con unset + limpieza de la config. Consérvala solo si pretendes usar la API key.
Q. Me piden iniciar sesión cada vez que arranco.
A. Las causas comunes son (1) desfase del reloj del sistema (la validación del token depende de una hora exacta) y (2) un Keychain de macOS bloqueado / contraseña no coincidente que impide guardar las credenciales. Configura el reloj para que se sincronice automáticamente y, en macOS, revisa el Keychain con claude doctor. Si persiste, vuelve a entrar de forma limpia con /logout → /login.
Q. ¿Qué me dice /status?
A. Muestra qué método de autenticación/credencial está activo actualmente (OAuth de suscripción, ANTHROPIC_API_KEY o credenciales de la nube). Dado que la mayoría de los problemas de autenticación son "se ha seleccionado una credencial no deseada", la regla es /status primero. La visualización exacta varía según la versión, así que confirma el comportamiento actual en la documentación oficial.
Q. El inicio de sesión falla por WSL o SSH porque el navegador no se abre.
A. En configuraciones remotas, la redirección del navegador no puede volver al callback local. Sortéalo pegando el código de inicio de sesión que muestra Claude Code, pulsando c para copiar la URL y abrirla en tu navegador local, o definiendo la variable de entorno BROWSER en WSL2. Conocer el método de pegar el código lo hace fiable.