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

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.

Это ошибки из разряда «не удалось пройти аутентификацию (кто вы?)», и обычно они проявляются как 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): если вы вошли через Claude apps gateway, используется только его токен (ни один из пунктов 1–7)
1 Облако (Bedrock/Agent Platform (Vertex)/Foundry)
2 ANTHROPIC_AUTH_TOKEN (для LLM-шлюзов и прокси)
3 ANTHROPIC_API_KEY ← переменная окружения побеждает = оплата по факту
4 apiKeyHelper
5 CLAUDE_CODE_OAUTH_TOKEN (claude setup-token)
6 Профили Anthropic и учётные данные федерации (CLI ant, Workload Identity Federation)
Профиль входа, например от ant auth login, стоит здесь, только если он указан в ANTHROPIC_PROFILE; иначе он ниже пункта 7
7 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Ключ из переменной окружения или apiKeyHelper был отклонён API (если в ANTHROPIC_API_KEY есть перенос строки или подобный символ, Claude Code останавливает его ещё до отправки)
Your ANTHROPIC_API_KEY belongs to a disabled organization · …
API Error: 400 ... This organization has been disabled.
Используется устаревший ANTHROPIC_API_KEY от отключённой организации. Если сообщение появляется без заданных переменных окружения, отключена организация вашего /login (см. под таблицей)
OAuth token revoked · Please run /login
Please run /login · API Error: 401 OAuth token has expired ...
Выход на всех устройствах / администратор отозвал доступ (revoked); сбой автообновления (expired)
API Error: 403 ... forbidden ... Request not allowedНеактивная подписка, отсутствие роли в Console или вмешательство прокси

Сообщение об отключённой организации заканчивается после «·» одной из двух подсказок. Unset the environment variable to use your subscription instead означает, что у вас остался вход, сохранённый через /login, и после удаления ключа снова заработает подписка. Update or unset the environment variable означает, что ключ — ваши единственные учётные данные: удалите его и выполните /login или замените ключом активной организации. Если никаких переменных окружения не задано, а ошибка продолжает появляться, отключена организация того аккаунта, с которым вы вошли через /login. Официальный справочник ошибок советует обратиться в поддержку или войти с другим аккаунтом.

Похожее сообщение Login expired · Please run /login означает другое состояние, чем Not logged in, где учётных данных не было с самого начала: автоматическое обновление сохранённого входа было отклонено, и Claude Code удалил учётные данные. Запрос никуда не отправляется и останавливается на вашей машине, поэтому вместо повторной попытки войдите заново через /login. Подробнее — в статье что означает Login expired · Please run /login и как это исправить.

Текст Not logged in зависит и от среды. В сессиях, которые запускает приложение Claude Desktop, например во вкладке Code или в Cowork, выводится Authentication required · Sign in again to continue, и войти заново нужно из приложения. Согласно официальному справочнику ошибок, если войти в аккаунт claude.ai в другом окне Claude Code с тем же каталогом конфигурации, интерактивная сессия с этим сообщением сама начинает использовать этот вход, перезапуск не нужен. Однако в старых версиях сообщение могло оставаться. Согласно официальному CHANGELOG, в v2.1.281 (23 сентября 2026 года) исправлено, что после входа из другого процесса Claude Code в сессии оставались нижняя строка «Not logged in · Run /login» и отсутствующие коннекторы claude.ai, а в v2.1.286 (30 сентября) исправлено, что на macOS при оставшемся старом ~/.claude/.credentials.json сессии продолжали показывать Not logged in или Login expired после успешного /login в другом окне. На macOS в версиях до v2.1.286 официальная документация советует перезапустить сессию, в которой видно сообщение.

Если настройки вашей организации запрещают вход по подписке, появляется сообщение, начинающееся с Your organization has disabled Claude subscription access. Это не проблема ваших локальных учётных данных, поэтому повторный /login с тем же аккаунтом её не решит. Что делать, описано в разделе 7.

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

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

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

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

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

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

Откуда берётся ключ: строка 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; он виден, только пока задан ANTHROPIC_API_KEY). В неинтерактивном режиме (-p) ключ, если он есть, используется всегда и без вопросов. Если вы не собираетесь намеренно использовать API-ключ, убедитесь через /status, что активна подписка.

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

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

OTHER CAUSES

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

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

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

Знание того, где хранятся учётные данные, тоже ускоряет восстановление. macOS: Keychain (если Keychain отказывает в записи — тот же файл, что и в Linux); Linux: ~/.claude/.credentials.json (права 0600); Windows: %USERPROFILE%\.claude\.credentials.json. Этим файлом управляют /login и /logout. Если что-то сломалось, вместо ручного удаления файла выполните официальный сброс: /logout → закройте Claude Code → запустите снова и выполните /login. Выход удаляет все сохранённые учётные данные, включая входы в MCP-серверы и секретные значения плагинов, так что MCP-серверы придётся авторизовать заново, а секреты плагинов — ввести повторно (официальный раздел о проблемах со входом и аутентификацией).

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, или запросы уходят по API-ключу Console, хотя вы хотели пользоваться подпискойПополните баланс. Чтобы работать по подписке, проверьте ключ в /status и сделайте unset (если не входили — /login)

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

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 знайте метод вставки кода.

7. Your organization has disabled Claude subscription access — организация запретила вход по подписке

При входе в Claude Code с аккаунтом подписки вас может остановить такое сообщение:

Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

Оно означает, что организация, к которой относится ваш аккаунт (ваша организация Claude), не разрешает использовать Claude Code со входом по подписке. В отличие от оставшегося API-ключа из раздела 2 или просроченного токена из раздела 3, причина не на вашем компьютере, а в настройках организации.

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

«Это серверная настройка организации, поэтому её нельзя переопределить локальными настройками, переменными окружения или флагами CLI. Повторный /login с тем же аккаунтом возвращает ту же ошибку. В неинтерактивном режиме (-p) и в Agent SDK она приходит как код ошибки oauth_org_not_allowed».

Официальная документация называет три выхода, и какой из них подходит, зависит от вашей роли.

Если вы работаете как участник организации — попросите администратора включить доступ

Первый — попросить администратора включить доступ к Claude Code для вашей организации. Со своей стороны вы ничего настроить не можете. Когда будете просить, передайте точный текст ошибки вместе с аккаунтом и организацией, которые показывает /status, — так будет понятно, о настройке какой организации идёт речь. Учтите, что официальный справочник ошибок не указывает, на каком экране администратор это включает.

Если вы работаете по API-ключу — аутентифицируйтесь через Claude Console

Второй — аутентифицироваться API-ключом Claude Console вместо подписки. Именно на это указывает фраза «Use an Anthropic API key instead» в сообщении. Подготовка идёт по официальной инструкции аутентификации через Claude Console, и в одиночку её не завершить:

  • Администратор Console приглашает вас через Settings → Members → Invite и назначает роль «Claude Code» (может создавать только API-ключи для Claude Code) или роль «Developer» (может создавать API-ключи любого типа)
  • Приняв приглашение, выполните /login в Claude Code и выберите для входа аккаунт Anthropic Console. Можно также запустить Claude Code с ключом, созданным в Console и записанным в переменную окружения ANTHROPIC_API_KEY (в интерактивном режиме вас один раз спросят, использовать ли этот ключ)
  • Выполните /status и убедитесь, что активными стали учётные данные Console

Есть две оговорки. Первая — стоимость: использование через Console оплачивается как использование API, а не из лимита, включённого в подписку (тот же механизм, что и «неожиданная оплата по факту использования» из раздела 2, только теперь намеренно). Вторая — обратная ошибка: если организация в Console отключила аутентификацию по API-ключу, появится Your organization has disabled API key authentication (такое сообщение есть начиная с v2.1.169). Официальное решение для неё тоже обратное — убрать ключ и выполнить /login, чтобы войти с аккаунтом claude.ai.

Если вы администратор организации

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

Источники: официальный справочник ошибок Claude Code (разделы об этой ошибке и о Your organization has disabled API key authentication), раздел об аутентификации через Claude Console в документации по аутентификации и статья Справочного центра Claude Use Claude Code with your Pro or Max plan (всё проверено 22 сентября 2026 года).

Итоги

Ошибки аутентификации/входа в 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. Если никаких переменных окружения не задано, а «organization disabled» продолжает появляться, отключена организация вашего /login: обратитесь в поддержку или войдите с другим аккаунтом.

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

Q. Вход требуется при каждом запуске.
A. Частые причины — (1) сбой системных часов (проверка токена зависит от точного времени) и (2) заблокированный Keychain в macOS / несовпадение пароля, из-за чего в Keychain нельзя записать данные (тогда вход сохраняется в открытом виде в файл ~/.claude/.credentials.json, а вход через Console с созданием API-ключа не проходит). Настройте автоматическую синхронизацию часов, а на 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. Знание метода вставки кода делает это надёжным.