Содержание
Случалось ли, что 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» для чистого повторного входа.
У учётных данных есть «приоритет»
— побеждает то, что выше, поэтому API-ключ из окружения перекрывает подписку
ANTHROPIC_AUTH_TOKEN (для LLM-шлюзов и прокси)
ANTHROPIC_API_KEY ← переменная окружения
побеждает = оплата по факту
apiKeyHelper
CLAUDE_CODE_OAUTH_TOKEN (claude setup-token)
ant, Workload Identity Federation)Профиль входа, например от
ant auth login, стоит здесь, только если он указан в ANTHROPIC_PROFILE; иначе он ниже пункта 7
/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. Другие причины
Проблемы аутентификации помимо перекрытия тоже, как правило, имеют фиксированный набор причин.
Сбои аутентификации помимо перекрытия
/logout → /login.~/.claude/.credentials.json, а вход через Console с созданием API-ключа не проходит. Проверьте через claude doctor.c, чтобы скопировать URL, или задайте BROWSER.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.
Локализуйте сверху вниз
/status, чтобы увидеть, какие учётные данные активны (подписка, API-ключ или облако).env | grep ANTHROPIC (Windows: $PROFILE / пользовательские переменные окружения), чтобы найти лишний ключ.unset ANTHROPIC_API_KEY → перезапуск. Сделайте это постоянным, удалив строку export из конфига шелла / .env./logout → закрыть Claude Code → /login для чистой повторной аутентификации.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. Знание метода вставки кода делает это надёжным.