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
Please run /login · API Error: 401 OAuth token has expired ...
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 LLM et proxys)
ANTHROPIC_API_KEY ← variable d'env.
c'est elle qui gagne = à l'usage
apiKeyHelper
CLAUDE_CODE_OAUTH_TOKEN (claude setup-token)
ant, Workload Identity Federation)Un profil de connexion, comme celui d'
ant auth login, n'est à ce rang que s'il est nommé dans ANTHROPIC_PROFILE ; sinon, il passe sous le niveau 7
/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 » avec un seul identifiant, par exemple votre connexion OAuth d'abonnement, une clé API ou 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 | Une clé issue d'une variable d'env. ou d'apiKeyHelper a été rejetée par l'API (si ANTHROPIC_API_KEY contient un saut de ligne ou un caractère de ce genre, Claude Code la bloque avant l'envoi) |
| Your ANTHROPIC_API_KEY belongs to a disabled organization · … API Error: 400 ... This organization has been disabled. | Une vieille ANTHROPIC_API_KEY d'une org. désactivée est utilisée. Si le message apparaît sans aucune variable d'environnement définie, c'est l'org. de votre /login qui est désactivée (voir sous le tableau) |
| OAuth token revoked · Please run /login Please run /login · API Error: 401 OAuth token has expired ... | Déconnecté partout / un admin a retiré l'accès (revoked) ; échec du rafraîchissement auto. (expired) |
| API Error: 403 ... forbidden ... Request not allowed | Abonnement inactif, rôle Console manquant ou interférence d'un proxy |
Le message d'organisation désactivée se termine par l'une de deux indications après le « · ». Unset the environment variable to use your subscription instead signifie qu'une connexion enregistrée avec /login est toujours là : retirer la clé vous ramène à l'abonnement. Update or unset the environment variable signifie que la clé est votre seul identifiant : retirez-la et lancez /login, ou remplacez-la par une clé d'une organisation active. Si aucune variable d'environnement n'est définie et que l'erreur revient, l'organisation désactivée est celle du compte avec lequel vous vous êtes connecté via /login. La référence des erreurs officielle conseille de contacter le support ou de vous connecter avec un autre compte.
Le message voisin Login expired · Please run /login correspond à un autre état que Not logged in, où aucun identifiant n'a jamais existé : le renouvellement automatique de la connexion enregistrée a été refusé et Claude Code a supprimé les identifiants. La requête s'arrête sur votre machine sans être envoyée ; au lieu de réessayer, reconnectez-vous avec /login. Nous l'expliquons dans Login expired · Please run /login : signification et solutions.
Le texte de Not logged in dépend aussi de l'environnement. Dans les sessions exécutées par l'application Claude Desktop, comme l'onglet Code ou Cowork, il s'affiche sous la forme Authentication required · Sign in again to continue, et l'on se reconnecte depuis l'application. D'après la référence officielle des erreurs, si vous vous connectez avec votre compte claude.ai dans une autre fenêtre Claude Code qui utilise le même répertoire de configuration, la session interactive qui affiche ce message se met à utiliser cette connexion d'elle-même, sans redémarrage. Dans les anciennes versions, le message pouvait toutefois rester affiché. D'après le CHANGELOG officiel, la v2.1.281 (23 septembre 2026) a corrigé le pied de page « Not logged in · Run /login » et l'absence des connecteurs claude.ai qui persistaient dans une session après une connexion depuis un autre processus Claude Code, et la v2.1.286 (30 septembre) a corrigé les sessions macOS qui affichaient encore Not logged in ou Login expired après un /login réussi dans une autre fenêtre lorsqu'un ancien ~/.claude/.credentials.json subsistait. Sous macOS, avant la v2.1.286, la documentation officielle conseille de redémarrer la session qui affiche le message.
Quand les réglages de votre organisation bloquent la connexion par abonnement, un message commençant par Your organization has disabled Claude subscription access s'affiche. Ce n'est pas un problème de vos identifiants locaux : relancer /login avec le même compte ne le règle donc pas. La marche à suivre est en section 7.
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. (2) Your ANTHROPIC_API_KEY belongs to a disabled organization (ou 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 ». De plus, tant que cet écrasement est actif, les connecteurs ajoutés sur claude.ai ne sont pas chargés non plus, et un avertissement commençant par claude.ai connectors are disabled peut s'afficher. Nous l'expliquons dans claude.ai connectors are disabled : signification et solutions.
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, qui n'apparaît que tant que ANTHROPIC_API_KEY est définie). En mode non interactif (-p), la clé est toujours utilisée si elle est présente, sans rien demander. À 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/.credentials.json, et une connexion Console qui crée une clé API échoue. Vérifiez avec claude doctor.c pour copier l'URL, ou définissez BROWSER.apiKeyHelper) et lancez /login.
« 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 (si le Keychain refuse l'écriture, le même fichier que sous Linux est utilisé) ; Linux : ~/.claude/.credentials.json (mode 0600) ; Windows : %USERPROFILE%\.claude\.credentials.json. Ce fichier est géré par /login et /logout. Si quelque chose semble cassé, plutôt que de le supprimer à la main, suivez la réinitialisation officielle : /logout → fermez Claude Code → relancez-le et exécutez /login. La déconnexion supprime tous les identifiants enregistrés, y compris les connexions aux serveurs MCP et les valeurs secrètes des plugins : il faudra réautoriser les serveurs MCP et saisir de nouveau ces secrets (dépannage de la connexion et de l'authentification officiel).
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é, ou requêtes envoyées avec une clé API de la Console alors que vous vouliez utiliser l'abonnement | Ajouter du crédit. Pour utiliser l'abonnement, vérifiez la clé dans /status et faites unset (lancez /login si vous n'êtes pas connecté) |
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 », un « 429 sur un niveau bas » et « Credit balance is too low » — c'est pourquoi la réponse à la confusion est toujours /status en premier. L'erreur de solde insuffisant est détaillée dans Your credit balance is too low to access the Anthropic API : solutions. 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.
7. Your organization has disabled Claude subscription access — votre organisation bloque la connexion par abonnement
En vous connectant à Claude Code avec un compte d'abonnement, vous pouvez être arrêté par ce message :
Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access
Il signifie que l'organisation à laquelle appartient votre compte (votre organisation Claude) n'autorise pas l'utilisation de Claude Code via une connexion par abonnement. Contrairement à la clé API parasite de la section 2 ou au jeton expiré de la section 3, la cause n'est pas sur votre machine, mais dans les réglages de votre organisation.
L'explication officielle (paraphrasée)
« C'est un réglage de l'organisation côté serveur : il ne peut pas être outrepassé par les réglages locaux, les variables d'environnement ou les options de la CLI. Relancer /login avec le même compte renvoie la même erreur. En mode non interactif (-p) et dans l'Agent SDK, elle remonte sous le code d'erreur oauth_org_not_allowed. »
La documentation officielle propose trois issues, et la bonne dépend de votre rôle.
Si vous l'utilisez en tant que membre d'une organisation — demandez à l'admin d'activer l'accès
La première consiste à demander à votre admin d'activer l'accès à Claude Code pour votre organisation. Aucun réglage ne peut être modifié de votre côté. En faisant la demande, transmettez le texte exact de l'erreur ainsi que le compte et l'organisation qu'affiche /status, pour qu'il soit clair de quelle organisation il s'agit. Notez que la référence officielle des erreurs n'indique pas sur quel écran l'admin l'active.
Si vous utilisez une clé API — authentifiez-vous via la Claude Console
La deuxième consiste à vous authentifier avec une clé API de la Claude Console au lieu de votre abonnement. C'est ce que désigne le « Use an Anthropic API key instead » du message. La mise en place suit les étapes officielles d'authentification via la Claude Console, et vous ne pouvez pas la mener seul :
- Un admin de la Console vous invite depuis Settings → Members → Invite et vous attribue soit le rôle « Claude Code » (ne peut créer que des clés API pour Claude Code), soit le rôle « Developer » (peut créer tout type de clé API)
- Après avoir accepté l'invitation, lancez
/logindans Claude Code et choisissez votre compte Anthropic Console pour vous connecter. Vous pouvez aussi démarrer Claude Code avec une clé créée dans la Console placée dans la variable d'environnementANTHROPIC_API_KEY(en mode interactif, on vous demande une fois si vous voulez utiliser cette clé) - Lancez
/statuspour vérifier que l'identité active est désormais celle de la Console
Deux mises en garde. La première concerne le coût : l'usage via la Console est facturé comme usage de l'API, et non sur l'usage inclus dans votre abonnement (le même mécanisme que les « facturations à l'usage inattendues » de la section 2, cette fois voulu). La seconde est l'erreur inverse : si l'organisation côté Console a désactivé l'authentification par clé API, c'est Your organization has disabled API key authentication qui s'affiche (message présent depuis la v2.1.169). Sa correction officielle est elle aussi inverse — retirer la clé et lancer /login pour vous connecter avec votre compte claude.ai.
Si vous êtes l'admin de l'organisation
Si vous êtes l'admin et que vous ne voyez aucune option pour activer l'accès, la documentation officielle indique de contacter le support d'Anthropic.
Sources : la référence des erreurs officielle de Claude Code (les entrées de cette erreur et de Your organization has disabled API key authentication), la section sur l'authentification via la Claude Console de la documentation d'authentification, et l'article du Centre d'aide Claude Use Claude Code with your Pro or Max plan (le tout vérifié le 22 septembre 2026).
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. Le plus souvent, 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. Si aucune variable d'environnement n'est définie et que « organization disabled » revient, l'organisation désactivée est celle de votre /login : contactez le support ou connectez-vous avec un autre compte.
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'écrire dans le Keychain (la connexion est alors enregistrée dans le fichier en clair ~/.claude/.credentials.json, et une connexion Console qui crée une clé API échoue). 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.