Sommaire
Claude Code vous a-t-il soudain affiché un message de ce genre en exigeant que vous vous connectiez ?
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.
Ce sont des erreurs « l'authentification a échoué (qui êtes-vous ?) », qui surgissent le plus souvent sous la forme 401/403. Le côté frustrant, c'est à quel point elles paraissent déroutantes — « je paie, et pourtant je suis rejeté » ou « ça marchait hier, et là on me redemande soudain de me connecter ». Mais la plupart des causes sont classiques, et dès que vous connaissez l'ordre dans lequel vérifier, c'est une réparation rapide.
Le point le plus important d'emblée. (1) Le problème d'authentification numéro un, c'est une variable d'environnement ANTHROPIC_API_KEY qui écrase silencieusement votre connexion par abonnement (Pro/Max) — ce qui devient la vraie cause de facturations à l'usage inattendues, de « organization disabled » et de « Invalid API key ». (2) Le point de départ est toujours /status pour voir « quelle identité est active en ce moment ». (3) En cas de doute, « unset la clé parasite → /logout → /login » pour repartir proprement.
Les identités ont une « priorité »
— celle qui est plus haut l'emporte, donc une clé API d'environnement écrase votre abonnement
ANTHROPIC_AUTH_TOKEN (passerelles)
ANTHROPIC_API_KEY ← variable d'env.
c'est elle qui gagne = à l'usage
apiKeyHelper / 5. CLAUDE_CODE_OAUTH_TOKEN
/login)
ce que vous voulez vraiment
Si ANTHROPIC_API_KEY traîne dans votre environnement, elle prend le pas sur l'abonnement.
Vérifiez d'abord avec /status → si inutile, unset ANTHROPIC_API_KEY.
1. Ce que cette erreur vous dit vraiment
L'authentification consiste à « prouver qui vous êtes ». Claude Code prouve « vous » soit par votre connexion OAuth d'abonnement, soit par une clé API, soit par des identifiants cloud. Quand cette preuve échoue, vous êtes rejeté en 401 (authentication_error) ou 403 (forbidden). Voici les messages représentatifs et leur signification :
| Message | Signification |
|---|---|
| Not logged in · Please run /login | Aucune identité valide → /login |
| Invalid API key · Fix external API key (anciennes versions : « · Please run /login ») | Une clé issue d'une variable d'env. ou d'apiKeyHelper a été rejetée par l'API |
| This organization has been disabled | Une vieille clé API d'une org. désactivée vous écrase |
| OAuth token revoked / has expired · Please run /login | Déconnecté ailleurs / révoqué par un admin / échec du rafraîchissement auto. |
| API Error: 403 ... forbidden ... Request not allowed | Abonnement inactif, rôle Console manquant ou interférence d'un proxy |
L'habitude essentielle : avant de vous accuser, lancez /status pour voir « quelle identité est active en ce moment ». La plupart des erreurs d'authentification viennent de la sélection d'une identité non voulue — et le suspect numéro un est l'« écrasement par clé API » de la section suivante.
2. Le grand piège — une clé API écrase votre abonnement
La documentation officielle indique que Claude Code choisit UNE seule identité par « priorité » (voir l'en-tête). Le hic, c'est que la variable d'environnement ANTHROPIC_API_KEY se situe AU-DESSUS de votre connexion par abonnement (Pro/Max). Autrement dit —
L'explication officielle (paraphrasée)
« Même avec un abonnement actif, si ANTHROPIC_API_KEY est définie dans votre environnement, elle prend le pas une fois approuvée. Si cette clé appartient à une org. désactivée ou expirée, l'authentification échoue. Lancez unset ANTHROPIC_API_KEY pour revenir à votre abonnement, et vérifiez avec /status laquelle est active. »
Cet écrasement produit trois symptômes « déroutants ». (1) Des facturations à l'usage inattendues — ce qui devrait être un abonnement forfaitaire se retrouve facturé au token via la clé API (des factures-surprises élevées ont été signalées). (2) This organization has been disabled — la clé résiduelle appartenait à une ancienne org. désactivée. (3) Invalid API key — la clé est expirée ou erronée. Aucun de ces cas n'est « un problème avec votre connexion » — ce sont « des problèmes de clé parasite squattant votre environnement ».
D'où vient la clé : un export ANTHROPIC_API_KEY=... dans ~/.zshrc / ~/.bashrc / ~/.profile ; un .env lu par direnv, dotenv ou le terminal de votre IDE ; un reliquat d'un ancien poste/projet ; un environnement de CI. Sous Windows, le profil PowerShell ($PROFILE) ou les variables d'environnement utilisateur. Détectez avec /status et env | grep ANTHROPIC ; corrigez avec :
# Désactiver temporairement et lancer
unset ANTHROPIC_API_KEY
claude
# Correction permanente : supprimez la ligne export de votre config shell / .env, puis confirmez avec /status
Remarque : en mode interactif, on vous demande une fois si vous voulez utiliser la clé, et votre choix est mémorisé (modifiable ensuite via le commutateur « Use custom API key » dans /config). À moins de vouloir délibérément utiliser la clé API, confirmez avec /status que l'abonnement est actif.
3. Les autres causes
Les problèmes d'authentification autres que l'écrasement ont eux aussi tendance à avoir des causes bien définies.
Les ratés d'authentification au-delà de l'écrasement
/logout → /login.claude doctor.c pour copier l'URL, ou définissez BROWSER.
« On me redemande de me connecter à chaque fois » → soupçonnez d'abord un décalage d'horloge ou le Keychain.
« Rejeté avec un 403 » → soupçonnez un abonnement inactif, le rôle Console ou un proxy.
Savoir où vivent les identifiants accélère aussi la récupération. macOS : Keychain ; Linux : ~/.claude/.credentials.json (mode 0600) ; Windows : %USERPROFILE%\.claude\.credentials.json. Normalement /login et /logout gèrent cela, mais si le stockage est corrompu, vous pouvez supprimer ce fichier pour une ré-authentification propre (avancé).
4. Le flux de diagnostic
Quand vous êtes bloqué sur l'authentification, procédez de haut en bas. La plupart des cas se résolvent à l'étape 3.
Isolez le problème de haut en bas
/status pour voir quelle identité est active (abonnement, clé API ou cloud).env | grep ANTHROPIC (Windows : $PROFILE / variables d'env. utilisateur) pour repérer une clé parasite.unset ANTHROPIC_API_KEY → relancez. Rendez-le permanent en supprimant la ligne export de votre config shell / .env./logout → fermez Claude Code → /login pour une ré-authentification propre.claude doctor (macOS) / confirmez votre rôle Console (organisations).
La règle : « d'abord /status, puis la chasse à la clé parasite. »
La plupart des cas se règlent en retirant simplement la clé qui vous écrasait.
5. La distinguer des erreurs voisines
« Rejeté / arrêté » peut aussi avoir des causes hors authentification. Trier par code HTTP est la méthode fiable.
| Symptôme | Ce que c'est vraiment | Correction principale |
|---|---|---|
| 401 / 403 · Invalid API key · Not logged in | Cet article = authentification (problème d'identité) | /status → retirer la clé parasite → /login |
| usage limit reached | Quota du forfait épuisé (l'authentification est bonne) | Attendre la réinitialisation ; solutions |
| 429 Request rejected | Limite de débit (l'écrasement par une clé de niveau bas peut provoquer un 429) | Ralentir ; vérifiez aussi /status pour une clé parasite |
| 529 / 500 | Côté serveur : surcharge / erreur interne | Attendre & réessayer ; solutions |
| Credit balance is too low | Solde prépayé de la Console épuisé (régler ou passer à l'abonnement) | Ajouter du crédit, ou /login vers un abonnement |
Un moyen mnémotechnique : 401/403 est le problème « qui êtes-vous ? » = authentification. usage limit et Credit balance sont des problèmes de « quantité / solde ». 429 est une question de débit, 529/500 relève du serveur. Notamment, une clé API parasite provoque non seulement un « échec d'authentification » mais aussi des « facturations inattendues » et un « 429 sur un niveau bas » — c'est pourquoi la réponse à la confusion est toujours /status en premier. Pour les autres erreurs courantes, voir le récapitulatif des erreurs.
6. Liste de prévention
Une liste pour cesser de rester coincé sur l'authentification à répétition.
(1) Si vous utilisez l'abonnement, ne laissez pas ANTHROPIC_API_KEY dans votre config shell / .env (attention aux reliquats d'anciens postes/projets). (2) Prenez l'habitude de /status pour confirmer l'identité active avant un travail important. (3) Pour la CI, utilisez le CLAUDE_CODE_OAUTH_TOKEN de claude setup-token (ou une clé API explicite) plutôt qu'une connexion interactive. (4) Si on vous demande de vous connecter à chaque fois, vérifiez l'horloge système et le Keychain macOS. (5) Pour les comptes d'organisation, confirmez le rôle Console et l'état du forfait. (6) En WSL/SSH, connaissez la méthode du collage de code.
Résumé
Les erreurs d'authentification/connexion de Claude Code (Not logged in / Invalid API key / organization disabled / OAuth token expired, etc.) sont pour l'essentiel des 401/403 = problèmes d'identité. La vraie cause la plus fréquente est « la variable d'environnement ANTHROPIC_API_KEY qui écrase silencieusement votre connexion par abonnement » — ce qui produit des facturations à l'usage inattendues, organization disabled et Invalid API key. Le point de départ est donc toujours /status pour voir « quelle identité est active ».
Diagnostiquez par (1) /status -> (2) env | grep ANTHROPIC pour traquer une clé parasite -> (3) unset + suppression dans la config shell -> (4) /logout -> /login -> (5) horloge / Keychain / rôle Console. La plupart des cas se règlent en retirant simplement la clé qui vous écrasait. Triez par 401/403 = authentification, usage limit / Credit = quantité-solde, 429 = débit, 529/500 = serveur pour éviter la mauvaise solution. À lire aussi : limite d'usage, erreurs 529/500, récapitulatif des erreurs Claude Code.
FAQ
Q. Je paie, et pourtant j'obtiens « Invalid API key » ou « organization has been disabled ». Pourquoi ?
A. Presque à coup sûr, une variable d'environnement ANTHROPIC_API_KEY écrase votre connexion par abonnement. Si cette clé appartient à une org. expirée ou désactivée, vous êtes rejeté même avec un abonnement actif. Repérez-la avec env | grep ANTHROPIC, lancez unset ANTHROPIC_API_KEY, puis /login et confirmez avec /status. Supprimez aussi la ligne export de votre config shell (.zshrc, etc.) ou de votre .env.
Q. Je suis sur un abonnement forfaitaire mais j'ai été facturé au token.
A. C'est là encore typiquement l'écrasement par ANTHROPIC_API_KEY. Quand la clé API prend le pas, la consommation bascule vers une facturation API au token au lieu de votre abonnement forfaitaire. Confirmez avec /status que « l'abonnement est actif » ; si la clé API est sélectionnée, retirez-la avec unset + nettoyage de la config. Ne la gardez que si vous comptez utiliser la clé API.
Q. On me demande de me connecter à chaque démarrage.
A. Les causes courantes sont (1) un décalage de l'horloge système (la validation du jeton dépend d'une heure exacte) et (2) un Keychain macOS verrouillé / un mot de passe non concordant qui empêche d'enregistrer les identifiants. Réglez l'horloge sur la synchronisation automatique et, sous macOS, vérifiez le Keychain avec claude doctor. Si cela persiste, reconnectez-vous proprement avec /logout → /login.
Q. Que m'indique /status ?
A. Il montre quelle méthode d'authentification/identité est active actuellement (OAuth d'abonnement, ANTHROPIC_API_KEY ou identifiants cloud). Comme la plupart des problèmes d'authentification tiennent à « une identité non voulue sélectionnée », /status en premier est la règle. L'affichage exact varie selon la version : confirmez le comportement actuel dans la documentation officielle.
Q. La connexion échoue via WSL ou SSH parce que le navigateur ne s'ouvre pas.
A. Sur les configurations distantes, la redirection du navigateur ne peut pas revenir au callback local. Contournez en collant le code de connexion que Claude Code affiche, en appuyant sur c pour copier l'URL et l'ouvrir dans votre navigateur local, ou en définissant la variable d'environnement BROWSER sous WSL2. Connaître la méthode du collage de code rend l'opération fiable.