Случалось ли, что Claude Code вдруг выдавал подобное сообщение и требовал войти заново?

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.

Это ошибки из разряда «не удалось пройти аутентификацию (кто вы?)», и обычно они проявляются как 401/403. Раздражает то, насколько неочевидно они выглядят — «я плачу, а меня отклоняют» или «вчера всё работало, а теперь вдруг требует войти заново». Но большинство причин — типовые, и как только вы знаете порядок проверки, всё чинится быстро.

Сразу самое важное. (1) Проблема аутентификации №1 — это переменная окружения ANTHROPIC_API_KEY, которая молча перекрывает вход по подписке (Pro/Max) — именно она оказывается настоящей причиной неожиданных оплат по факту использования, «organization disabled» и «Invalid API key». (2) Отправная точка — всегда /status, чтобы увидеть, «какие учётные данные сейчас активны». (3) Если сомневаетесь — «unset лишнего ключа → /logout/login» для чистого повторного входа.

CLAUDE CODE · AUTH PRECEDENCE

У учётных данных есть «приоритет»

— побеждает то, что выше, поэтому API-ключ из окружения перекрывает подписку

1 Облако (Bedrock/Vertex/Foundry)
2 ANTHROPIC_AUTH_TOKEN (для шлюзов)
3 ANTHROPIC_API_KEY ← переменная окружения побеждает = оплата по факту
4 apiKeyHelper / 5. CLAUDE_CODE_OAUTH_TOKEN
6 OAuth подписки (/login) то, что вам реально нужно

Если ANTHROPIC_API_KEY остался в окружении, он имеет приоритет над подпиской.
Сначала проверьте через /status → если не нужен, unset ANTHROPIC_API_KEY.

1. О чём говорит эта ошибка

Аутентификация — это «доказательство того, кто вы». Claude Code доказывает, что «вы» — это вы, одним из трёх способов: вход по OAuth подписки, API-ключ или облачные учётные данные. Когда это доказательство не проходит, вас отклоняют как 401 (authentication_error) или 403 (forbidden). Характерные сообщения и их значения:

СообщениеЗначение
Not logged in · Please run /loginНет действующих учётных данных → /login
Invalid API key · Fix external API key (в старых сборках: «· Please run /login»)Ключ из переменной окружения или apiKeyHelper был отклонён API
This organization has been disabledУстаревший API-ключ от отключённой организации перекрывает вас
OAuth token revoked / has expired · Please run /loginВыход выполнен в другом месте / отозван администратором / сбой автообновления
API Error: 403 ... forbidden ... Request not allowedНеактивная подписка, отсутствие роли в Console или вмешательство прокси

Ключевая привычка: прежде чем винить себя, выполните /status, чтобы увидеть, «какие учётные данные сейчас активны». Большинство ошибок аутентификации вызвано тем, что выбраны непреднамеренные учётные данные — а главный подозреваемый — это «перекрытие API-ключом» из следующего раздела.

2. Главная ловушка — API-ключ перекрывает подписку

Официальная документация прямо указывает, что Claude Code выбирает ОДНИ учётные данные по «приоритету» (см. блок выше). Загвоздка в том, что переменная окружения ANTHROPIC_API_KEY стоит ВЫШЕ входа по подписке (Pro/Max). Иными словами —

Официальное объяснение (в пересказе)

«Даже при действующей подписке, если в окружении задан ANTHROPIC_API_KEY, после подтверждения приоритет получает именно он. Если этот ключ принадлежит отключённой или просроченной организации, аутентификация не проходит. Выполните unset ANTHROPIC_API_KEY, чтобы вернуться к подписке, и проверьте через /status, что именно активно».

Это перекрытие порождает три «неочевидных» симптома. (1) Неожиданная оплата по факту использования — то, что должно быть фиксированной подпиской, тарифицируется потокенно через API-ключ (сообщалось о крупных неожиданных счетах). (2) This organization has been disabled — оставшийся ключ принадлежал отключённой старой организации. (3) Invalid API key — ключ просрочен или неверен. Ни одна из этих ситуаций не является «проблемой вашего входа» — это «проблема лишнего ключа, засевшего в вашем окружении».

Откуда берётся ключ: строка export ANTHROPIC_API_KEY=... в ~/.zshrc / ~/.bashrc / ~/.profile; файл .env, который читают direnv, dotenv или терминал вашей IDE; остаток от прошлой работы/проекта; окружение CI. На Windows — профиль PowerShell ($PROFILE) или пользовательские переменные окружения. Обнаружить через /status и env | grep ANTHROPIC; исправить так:

# Временно сбросить и запустить
unset ANTHROPIC_API_KEY
claude

# Постоянное решение: удалить строку export из конфига шелла / .env, затем подтвердить через /status

Примечание: в интерактивном режиме у вас один раз спрашивают, использовать ли ключ, и ваш выбор запоминается (изменить позже можно через переключатель «Use custom API key» в /config). Если вы не собираетесь намеренно использовать API-ключ, убедитесь через /status, что активна подписка.

3. Другие причины

Проблемы аутентификации помимо перекрытия тоже, как правило, имеют фиксированный набор причин.

OTHER CAUSES

Сбои аутентификации помимо перекрытия

Токен отозван / просрочен
Выход в другом месте / отозвал админ / сбой обновления. Войдите заново через /logout/login.
Сбой системных часов
Проверка токена зависит от точного времени. Если вход требуется при каждом запуске — настройте часы.
Keychain в macOS
Заблокированный Keychain / несовпадение пароля мешает сохранить учётные данные. Проверьте через claude doctor.
Нет роли в Console (403)
При работе по API-ключу подтвердите роль «Claude Code» / «Developer» в Console и активную подписку.
OAuth в WSL/SSH/контейнерах
Редирект браузера не может вернуться локально. Вставьте показанный код, нажмите c, чтобы скопировать URL, или задайте BROWSER.
Политика организации
«Отключён доступ по подписке / аутентификация по API-ключу» — это серверные настройки, локально их не переопределить. Нужны действия админа.

«Вход требуется каждый раз» → сначала подозревайте сбой часов или Keychain.
«Отклонено с 403» → подозревайте неактивную подписку, роль в Console или прокси.

Знание того, где хранятся учётные данные, тоже ускоряет восстановление. macOS: Keychain; Linux: ~/.claude/.credentials.json (права 0600); Windows: %USERPROFILE%\.claude\.credentials.json. Обычно этим управляют /login и /logout, но если хранилище повреждено, можно удалить этот файл для чистой повторной аутентификации (для продвинутых).

4. Порядок диагностики

Если застряли на аутентификации, идите сверху вниз. Большинство случаев решается к шагу 3.

DIAGNOSE

Локализуйте сверху вниз

1
/status, чтобы увидеть, какие учётные данные активны (подписка, API-ключ или облако).
2
env | grep ANTHROPIC (Windows: $PROFILE / пользовательские переменные окружения), чтобы найти лишний ключ.
3
unset ANTHROPIC_API_KEY → перезапуск. Сделайте это постоянным, удалив строку export из конфига шелла / .env.
4
Всё ещё не работает? /logout → закрыть Claude Code → /login для чистой повторной аутентификации.
5
Настройте часы / проверьте Keychain через claude doctor (macOS) / подтвердите свою роль в Console (для организаций).

Правило: «сначала /status, затем охота на лишний ключ».
Большинство случаев решается простым удалением ключа, который вас перекрывал.

5. Как отличить от похожих ошибок

«Отклонено / остановлено» может иметь и причины, не связанные с аутентификацией. Разделение по HTTP-коду — надёжный способ.

СимптомЧто это на самом делеОсновное решение
401 / 403 · Invalid API key · Not logged inЭта статья = аутентификация (проблема учётных данных)/status → удалить лишний ключ → /login
usage limit reachedКвота тарифа исчерпана (с аутентификацией всё в порядке)Дождитесь сброса; решения
429 Request rejectedЛимит частоты (перекрытие ключом низкого уровня может вызвать 429)Снизьте темп; также проверьте /status на лишний ключ
529 / 500Сторона сервера: перегрузка / внутренняя ошибкаПодождите и повторите; решения
Credit balance is too lowИсчерпан предоплаченный баланс в Console (оплатить или перейти на подписку)Пополните баланс или /login в подписку

Мнемоника: 401/403 — это проблема «кто вы?» = аутентификация. usage limit и Credit balance — это проблемы «объём / баланс». 429 — это частота, 529/500 — это сторона сервера. Примечательно, что лишний API-ключ вызывает не только «сбой аутентификации», но и «неожиданные оплаты» и «429 на низком уровне» — поэтому ответ на любую путаницу всегда «сначала /status». О других распространённых ошибках см. в сводке ошибок.

6. Чек-лист профилактики

Чек-лист, чтобы перестать раз за разом застревать на аутентификации.

(1) Если вы пользуетесь подпиской, не оставляйте ANTHROPIC_API_KEY в конфиге шелла / .env (следите за остатками от прежней работы/проектов). (2) Возьмите в привычку перед важной работой проверять активные учётные данные через /status. (3) Для CI используйте CLAUDE_CODE_OAUTH_TOKEN от claude setup-token (или явный API-ключ) вместо интерактивного входа. (4) Если вход требуется каждый раз, проверьте системные часы и Keychain в macOS. (5) Для аккаунтов организаций подтвердите роль в Console и статус тарифа. (6) В WSL/SSH знайте метод вставки кода.

Итоги

Ошибки аутентификации/входа в Claude Code (Not logged in / Invalid API key / organization disabled / OAuth token expired и т. д.) — это в основном 401/403 = проблемы учётных данных. Самая частая истинная причина — «переменная окружения ANTHROPIC_API_KEY, которая молча перекрывает вход по подписке» — что порождает неожиданные оплаты по факту использования, organization disabled и Invalid API key. Поэтому отправная точка — всегда /status, чтобы увидеть, «какие учётные данные активны».

Диагностируйте так: (1) /status -> (2) env | grep ANTHROPIC, чтобы найти лишний ключ -> (3) unset + удалить из конфига шелла -> (4) /logout -> /login -> (5) часы / Keychain / роль в Console. Большинство случаев решается простым удалением ключа, который вас перекрывал. Разделяйте по принципу 401/403 = аутентификация, usage limit / Credit = объём-баланс, 429 = частота, 529/500 = сервер, чтобы не применить неверное решение. Связанное: лимит использования, ошибки 529/500, сводка ошибок Claude Code.

FAQ

Q. Я плачу, но получаю «Invalid API key» или «organization has been disabled». Почему?
A. Почти наверняка переменная окружения ANTHROPIC_API_KEY перекрывает ваш вход по подписке. Если этот ключ принадлежит просроченной или отключённой организации, вас отклоняют даже при активной подписке. Найдите его через env | grep ANTHROPIC, выполните unset ANTHROPIC_API_KEY, затем /login и подтвердите через /status. Также удалите строку export из конфига шелла (.zshrc и т. п.) или .env.

Q. У меня фиксированная подписка, но со счёта списали потокенно.
A. Это тоже обычно перекрытие через ANTHROPIC_API_KEY. Когда приоритет получает API-ключ, использование идёт через потокенную оплату API, а не через вашу фиксированную подписку. Подтвердите через /status, что «подписка активна»; если выбран API-ключ, удалите его через unset + чистку конфига. Оставляйте его, только если намеренно хотите использовать API-ключ.

Q. Вход требуется при каждом запуске.
A. Частые причины — (1) сбой системных часов (проверка токена зависит от точного времени) и (2) заблокированный Keychain в macOS / несовпадение пароля, из-за чего не удаётся сохранить учётные данные. Настройте автоматическую синхронизацию часов, а на macOS проверьте Keychain через claude doctor. Если не помогает — войдите начисто через /logout/login.

Q. Что показывает /status?
A. Он показывает, какой метод аутентификации/учётные данные сейчас активны (OAuth подписки, ANTHROPIC_API_KEY или облачные учётные данные). Поскольку большинство проблем аутентификации — это «выбраны непреднамеренные учётные данные», правило таково: сначала /status. Точное отображение зависит от версии, поэтому актуальное поведение уточняйте в официальной документации.

Q. Вход через WSL или SSH не работает, потому что браузер не открывается.
A. В удалённых конфигурациях редирект браузера не может вернуться на локальный callback. Обойти это можно так: вставьте код входа, который показывает Claude Code, нажмите c, чтобы скопировать URL и открыть его в локальном браузере, или задайте переменную окружения BROWSER в WSL2. Знание метода вставки кода делает это надёжным.