Skip to main content
На этой странице перечислены ошибки времени выполнения, которые отображает Claude Code, и способы восстановления после каждой из них, а также что проверить, когда ответы кажутся неправильными без ошибки. Для ошибок установки, таких как command not found или сбои TLS во время установки, см. Устранение неполадок при установке и входе. За исключением ошибок Wrapper и IDE, которые выводит запускающая программа, а не сам Claude Code, эти ошибки и команды восстановления применяются во всех интерфейсах: CLI, приложении Desktop и облачных сессиях, поскольку все три используют один и тот же Claude Code CLI. Для других проблем, специфичных для конкретного интерфейса, см. раздел устранения неполадок на странице этого интерфейса.
Claude Code вызывает Claude API для получения ответов модели, поэтому большинство ошибок времени выполнения соответствуют базовому коду ошибки API. На этой странице описано, что означает каждая ошибка в Claude Code и как восстановиться. Для определений кодов состояния HTTP в исходном виде см. справочник по ошибкам платформы Claude.

Найдите вашу ошибку

Сопоставьте сообщение, которое вы видите, с разделом ниже.

Автоматические повторные попытки

Claude Code повторяет временные сбои до 10 раз с экспоненциальной задержкой перед отображением ошибки. Он не всегда повторяет сбой, который происходит в середине ответа Claude. Когда вы видите одну из ошибок на этой странице, Claude Code уже выполнил все применимые повторные попытки для этого сбоя. Claude Code повторяет эти сбои:
  • Ошибки сервера, перегруженные ответы и таймауты запросов, которые приходят до того, как какая-либо часть ответа Claude начнёт передаваться потоком.
  • Ошибка сервера или ответ о перегрузке, который приходит после того, как Claude завершил размышления, но до того, как он начал какой-либо текст или вызов инструмента. В этот момент Claude Code повторяет попытку при ошибке сервера до двух раз. До v2.1.284 Claude Code в этот момент завершал ход с ошибкой.
  • Разорванные соединения. Когда соединение разрывается в середине запроса до того, как Claude завершит какую-либо часть своего ответа, включая его размышления, Claude Code повторно отправляет запрос с той же задержкой и ход продолжается, даже если некоторый текст уже начал передаваться потоком. Когда оно разрывается после того, как Claude завершил размышления, но до того, как он начал какой-либо текст или вызов инструмента, Claude Code вместо этого повторно отправляет запрос до двух раз в быстрой последовательности и завершает ход с Connection lost before a response was produced, если соединение продолжает разрываться в этот момент.
  • Соединение, которое, как обнаружил Claude Code, было разорвано тем, что ваш компьютер перешёл в режим сна в середине запроса. Claude Code считает это разорванным соединением в соответствии с приведёнными выше правилами; как только метка повторной попытки назовёт конкретную причину, она будет читаться как Connection lost while your computer was asleep, и если ход завершается после того, как Claude завершил размышления, но до любого текста или вызова инструмента, сообщение читается как Your computer went to sleep before a response was produced.
  • Застопорившийся поток ответа, когда заголовки ответа прибыли, но ни одна часть ответа Claude не прибыла, или когда Claude завершил размышления, но не начал какой-либо текст или вызов инструмента: Claude Code прерывает застопорившееся соединение и повторно отправляет запрос в потоковом режиме максимум один раз. Если ответ застопорится во второй раз после того, как Claude завершил размышления, но до любого текста или вызова инструмента, Claude Code завершает ход с The response stalled before a response was produced.
  • Потоковый запрос, на который API никогда не отвечает заголовками ответа, на соединении, где действует дедлайн первого байта: Claude Code прерывает его по истечении дедлайна и повторно отправляет его максимум один раз за запрос модели, в пределах бюджета повторных попыток, затем завершает ход с No response from API, если эта попытка также остаётся без ответа. На других соединениях запрос ждёт API_TIMEOUT_MS. Когда вы устанавливаете CLAUDE_CODE_RETRY_WATCHDOG, ограничение на одну повторную попытку не применяется.
  • Потоковый ответ, который выходной фильтр содержимого API останавливает до того, как Claude либо завершил размышления, либо начал какой-либо текст или вызов инструмента. Claude Code повторно отправляет запрос один раз, в пределах бюджета повторных попыток, и показывает Output blocked by content filtering policy, если фильтр останавливает и второй ответ.
  • Временные дроссели 429, но не 429 лимита расходов шлюза, который не является дросселем; см. Spend limit reached.
    • Когда вы вошли с подпиской claude.ai, это включает дроссели 429, которые не содержат заголовков квоты вашего плана. До v2.1.199 Claude Code повторял эти дроссели только при входе с API-ключом и через Enterprise.
  • Запрос отклонён, потому что входные данные плюс max_tokens превышают лимит контекста. Повторная отправка его без изменений приведёт к тому же результату, поэтому Claude Code повторяет с уменьшенным max_tokens и прекращает повторные попытки и вместо этого выполняет компактирование в двух случаях:
    • Когда никакое сокращение не может поместиться, например когда сам диалог почти заполняет контекстное окно.
    • Когда повторная попытка не может больше сокращать max_tokens. До v2.1.218 Claude Code мог повторно отправить уменьшенный запрос, который всё ещё не подходил, например когда бюджет расширенного мышления превышал оставшийся контекст, пока не закончился бюджет повторных попыток.
  • Истёкшие или отсутствующие учётные данные Google Cloud на Google Cloud’s Agent Platform, или учётные данные AWS, которые не загружаются на вашей машине. Claude Code отбрасывает свои кэшированные учётные данные и повторяет попытку до двух раз, затем сообщает об ошибке, чтобы вы могли повторно пройти аутентификацию сразу же, как описано в разделе Could not load AWS or Google Cloud credentials. До v2.1.228 Claude Code повторял неудачные учётные данные Google Cloud через полный бюджет повторных попыток перед отображением ошибки.
  • 401 или 403 из Anthropic API, напрямую или через LLM-шлюз, пока скрипт apiKeyHelper предоставляет учётные данные. Claude Code повторно запускает скрипт и повторяет попытку с его свежим выводом, в пределах полного бюджета повторных попыток. Когда сам скрипт не работает при повторном запуске, Claude Code вместо этого показывает Your apiKeyHelper script is failing.
До v2.1.227 Connection lost before a response was produced читалось как Connection closed while thinking, before producing a response и The response stalled before a response was produced читалось как Response stalled while thinking, before producing a response. Claude Code не повторяет эти сбои:
  • Сбой проверки сертификата TLS, такой как TLS-инспектирующий прокси, отсутствующий пакет NODE_EXTRA_CA_CERTS или истёкший сертификат. Claude Code сообщает об ошибке при первой попытке, чтобы вы могли сразу же исправить настройку сертификата; см. SSL certificate errors. Claude Code по-прежнему повторяет временные условия TLS, такие как таймаут рукопожатия. До v2.1.199 Claude Code повторял сбои сертификатов через полный бюджет повторных попыток перед отображением ошибки.
  • Ошибка сервера, разорванное соединение или застопорившийся поток, который приходит после того, как Claude завершил блок текста или вызов инструмента, или начал один после завершения своих размышлений, но до завершения ответа. Claude Code не запускает запрос повторно, потому что это может выполнить одни и те же вызовы инструментов дважды. Он сохраняет то, что Claude завершил, запускает любые вызовы инструментов, которые Claude завершил, и продолжает ход из их результатов. О том, что вы видите в интерактивной сессии и в неинтерактивной, прочитайте The response above may be incomplete. До v2.1.199 Claude Code отбрасывал частичный вывод и сообщал обо всём ходе как об ошибке, когда ошибка сервера приходила в середине потока.
  • Сбой, который приходит после того, как Claude завершил ответ: повторная попытка не требуется, поэтому Claude Code сохраняет полный ответ и завершает ход нормально.
  • Amazon Bedrock streaming response with an unexpected content-type, потому что шлюз или прокси, переписывающие ответ, переписали бы повторную попытку таким же образом. Требуется Claude Code v2.1.208 или позже.
  • Непотоковая повторная попытка неудавшегося потокового запроса, которая получает статус успеха, но no Claude API message in the body. Claude Code завершает ход с этой ошибкой.
  • Запрос, который проверка политики вашей организации отклонила, который отображается как строка API Error:, содержащая сообщение об отказе. Администраторы вашей организации настроили проверку с помощью Inference hooks, функции Claude Enterprise, и сообщение заканчивается инструкциями, которые они настроили, или по умолчанию говорит вам связаться с ними. Claude Code не отправляет отклонённый запрос повторно на ту же модель или на резервную модель, потому что отказ касается содержимого запроса, а не модели. До v2.1.239 Claude Code мог повторно отправить отклонённый запрос без потоковой передачи или на настроенную резервную модель перед отображением отказа.

Что вы видите, пока Claude Code повторяет или ждёт

Во время повторной попытки спиннер показывает обратный отсчёт Retrying in Ns · attempt x/y после метки ошибки. Метка называет конкретную причину с первой попытки для сбоев, на которые вы можете действовать сразу же: сеть отключена, рукопожатие TLS не удалось, или вы достигли ограничения частоты запросов. Для других ошибок сначала читается API error. Начиная с v2.1.198 он переключается на конкретную причину с третьей попытки, или при последней попытке, когда CLAUDE_CODE_MAX_RETRIES позволяет менее трёх; более ранние версии переключаются только при последней попытке. Начиная с v2.1.198 обычный совет спиннера подавляется во время повторных попыток. После того как причина ошибки раскрыта, если сбой является перегрузкой 529, строка ниже обратного отсчёта также называет, где проверить статус услуги: status.claude.com на Anthropic API, или хост поставщика или шлюза, названный в сообщении, в других конфигурациях. Если никакие данные не поступают в поток ответа в течение 20 секунд, пока запрос всё ещё ожидается, спиннер показывает Waiting for API response · will retry in … · check your network перед началом любой повторной попытки. Запрос ещё не завершился неудачей: обратный отсчёт идёт до момента, когда Claude Code прерывает застопорившееся соединение. После прерывания то, что вы видите, зависит от того, как далеко продвинулся ответ:
  • До того, как Claude завершил блок текста или вызов инструмента, или начал один после завершения своих размышлений, Claude Code повторяет запрос или завершает ход с ошибкой. Automatic retries говорит, какие застои он повторяет и сколько раз.
  • После того, как Claude завершил блок текста или вызов инструмента, или начал один после завершения своих размышлений, но до того, как Claude завершил ответ, Claude Code сохраняет то, что Claude завершил, продолжает ход из любых вызовов инструментов, которые Claude завершил, и показывает The response above may be incomplete. В неинтерактивной сессии и для ответа субагента в любой сессии Claude Code может сначала предложить Claude продолжить ответ; эта запись говорит, когда это происходит и когда вы всё ещё видите уведомление там.
  • После того, как Claude завершил ответ, Claude Code завершает ход нормально.
Баннер очищается сам по себе, как только данные возобновляются или повторная попытка успешна. Если он появляется при каждой попытке, рассматривайте это как network issue. До v2.1.185 баннер появлялся через 10 секунд с другой формулировкой. Пока Claude консультируется с advisor, баннер появляется через 90 секунд без данных вместо 20, потому что длительный обзор советника может не отправлять ничего более 20 секунд. До v2.1.214 порог в 20 секунд применялся и во время вызовов советника, поэтому баннер появлялся во время обзоров советника, даже когда всё было в порядке.

Настройка поведения повторных попыток

Вы можете настроить поведение повторных попыток с помощью этих переменных окружения:

Ошибки сервера

Большинство этих ошибок поступают от поставщика вывода: сервиса Anthropic на Anthropic API и сервиса за эндпоинтом этого поставщика на Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry или пользовательском шлюзе. Разделы Auto mode cannot determine the safety of an action и Agent terminated early due to an API error также охватывают причины на вашей стороне, например учетную запись Amazon Bedrock, которая не может вызвать модель классификатора, или субагента, который достиг лимита использования.

API Error: 500 Internal server error

Claude Code отображает код состояния и сообщение об ошибке API для любого ответа 5xx. Пример ниже показывает ответ 500 на Anthropic API:
Завершающее предложение указывает, где проверить состояние сервиса, и зависит от поставщика. Для конфигураций Amazon Bedrock, Google Cloud’s Agent Platform и Microsoft Foundry указывается страница статуса этого поставщика. Для пользовательского ANTHROPIC_BASE_URL указывается хост шлюза. Ошибка 5xx от самого API указывает на неожиданный сбой внутри API. Она не вызвана вашим промптом, настройками или учетной записью. Когда прокси, балансировщик нагрузки или шлюз отвечает HTML-страницей ошибки, сообщение показывает код состояния и заголовок страницы, например API Error: 502 Bad Gateway. Для страницы без заголовка сообщение вместо этого показывает код состояния и его стандартное название. До v2.1.281 код состояния терялся, если у страницы был заголовок, а если заголовка не было, выводилась необработанная разметка страницы. Что делать:
  • Проверьте status.claude.com или страницу статуса поставщика, указанную в сообщении, на предмет активных инцидентов
  • Подождите минуту, затем отправьте сообщение еще раз. Ваше исходное сообщение все еще находится в диалоге, поэтому для длинного промпта вы можете ввести try again вместо вставки всего текста.
  • Если ошибка сохраняется без опубликованного инцидента, запустите /feedback, чтобы Anthropic могла расследовать проблему с деталями вашего запроса. См. Сообщить об ошибке, если /feedback недоступен в вашей среде.

API Error: Repeated 529 Overloaded errors

API временно работает на пределе мощности для всех пользователей. Claude Code уже несколько раз повторил попытку перед отображением этого сообщения:
Завершающее предложение зависит от поставщика так же, как в ошибке 500 выше. Ошибка 529 — это не ваш лимит использования, и она не учитывается в вашей квоте. Что делать:
  • Проверьте status.claude.com или страницу статуса поставщика, указанную в сообщении, на предмет уведомлений о нехватке мощности
  • Повторите попытку через несколько минут
  • Запустите /model и переключитесь на другую модель, чтобы продолжить работу, так как мощность отслеживается для каждой модели отдельно. Claude Code предлагает вам это сделать, когда одна модель испытывает особенно высокую нагрузку, например Opus is experiencing high load, please use /model to switch to Sonnet. На моделях Fable сообщение называет Fable. В сессии, которую запускает приложение Claude Desktop, например во вкладке Code или в Cowork, сообщение выглядит как Opus is experiencing high load. Switch to Sonnet., и вы переключаете модели с помощью средства выбора модели в приложении.

Request timed out

API не ответил до истечения срока подключения.
Это может произойти в периоды высокой нагрузки или когда модель генерирует очень большой ответ. Таймаут запроса по умолчанию составляет 10 минут. Что делать:

No response from API

Claude Code отправил потоковый запрос, и API не вернул заголовки ответа в течение срока ожидания первого байта, поэтому Claude Code прервал запрос вместо ожидания полного таймаута запроса API_TIMEOUT_MS, по умолчанию 10 минут. Claude Code отправляет запрос повторно не более одного раза, если это позволяет бюджет повторных попыток. Когда повторная попытка тоже остается без ответа, ход завершается этим сообщением, которое показывает, сколько ждала каждая попытка. Когда вы устанавливаете CLAUDE_CODE_RETRY_WATCHDOG, ограничение в одну повторную попытку не применяется, и Claude Code повторяет попытки в рамках бюджета, описанного в разделе Настройка поведения повторных попыток.
Claude Code задает время ожидания заголовков ответа для первой попытки и для повторной попытки отдельно:
  • Первая попытка: CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS, если вы установили значение 1 или больше, ограниченное диапазоном от 10 секунд до 30 минут. В противном случае Claude Code использует таймаут байтового watchdog, указанный в разделе Streaming idle watchdogs, поэтому переменные, изменяющие этот таймаут, изменяют и это ожидание. В любом случае Claude Code добавляет одну секунду на каждые 32 КБ тела запроса.
  • Повторная попытка: на одну секунду меньше API_TIMEOUT_MS, по умолчанию чуть менее 10 минут, чтобы повторная попытка могла дождаться прокси или шлюза, который удерживает ответ до завершения генерации. На Amazon Bedrock повторная попытка использует тот же срок, что и первая, и сообщение показывает одну длительность вместо двух.
Ни одно ожидание не превышает положительное значение API_TIMEOUT_MS минус одна секунда, а положительное значение API_TIMEOUT_MS менее 11 секунд отключает этот срок. Байтовый watchdog запускается только после получения заголовков ответа, поэтому ответ, который после этого перестает отправлять байты, подчиняется правилам для зависших потоков, а не этому сроку. Что делать:
  • Отправьте сообщение еще раз. Ваше исходное сообщение все еще находится в диалоге, поэтому для длинного промпта вы можете ввести try again вместо вставки всего текста.
  • Если это повторяется, рассматривайте это как проблему сети или прокси.
  • Если прокси или шлюз в вашей сети удерживает ответы до их завершения, увеличьте API_TIMEOUT_MS, чтобы повторная попытка ждала дольше. На Amazon Bedrock также увеличьте CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS.
  • Если первая попытка постоянно завершается по таймауту, а повторная затем проходит успешно, увеличьте CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS, чтобы первая попытка тоже ждала достаточно долго.
До v2.1.242 Claude Code ждал полного таймаута запроса API_TIMEOUT_MS, по умолчанию 10 минут, прежде чем завершить потоковый запрос без ответа ошибкой. До v2.1.261 повторная попытка ждала тот же срок, что и первая, и сообщение не показывало длительности.

The response above may be incomplete

Потоковый запрос завершился сбоем, когда ответ еще формировался, после того как Claude завершил блок текста или вызов инструмента либо начал его после завершения размышлений. Повторная отправка запроса может привести к двойному выполнению тех же вызовов инструментов, поэтому Claude Code сохраняет вывод, который Claude успел завершить, и добавляет это уведомление вместо того, чтобы отбросить ход. Вариант сообщения указывает на причину:
  • Server error mid-response: ошибка перегрузки или серверная ошибка 5xx посреди потока. Этот вариант требует Claude Code v2.1.199 или новее; до этого в таком случае частичный вывод отбрасывался, а весь ход сообщался как ошибка.
  • Connection lost mid-response: соединение разорвалось. Вы также видите этот вариант, когда прокси или шлюз корректно закрывает тело ответа до того, как ответ завершен.
  • Your computer went to sleep mid-response: Claude Code обнаружил, что ваш компьютер перешел в режим сна во время потоковой передачи ответа. После пробуждения компьютера Claude Code считает соединение разорванным и прекращает чтение из него.
  • Part of the response never arrived: событие потока было потеряно между API и Claude Code, поэтому более позднее событие ссылалось на содержимое, которое так и не поступило. До v2.1.281 в этом случае ход завершался с API Error: Content block not found.
  • The response stream was malformed: поступило событие для блока содержимого, который уже завершился, или событие поступило поврежденным. Поврежденное событие — это событие, данные которого не являются допустимым JSON, содержимое которого отсутствует или не соответствует типу события. До v2.1.284 вместо этого появлялась необработанная ошибка парсера, например начинающаяся с API Error: JSON Parse error, когда событие с недопустимым JSON поступало после того, как Claude завершил размышления, блок текста или вызов инструмента.
  • The response stopped arriving: соединение оставалось открытым, но перестало доставлять данные, поэтому потоковый idle watchdog прервал его. До v2.1.222 Claude Code также мог сообщать об этом сбое на соединениях со шлюзом через ANTHROPIC_BASE_URL или ANTHROPIC_AWS_BASE_URL, пока от сервера все еще поступали keep-alive пинги, потому что там он учитывал только разобранные события ответа; обновление устраняет эти ложные таймауты на этих маршрутах. Шлюзы, к которым обращаются через базовый URL поставщика, например ANTHROPIC_BEDROCK_BASE_URL, не охватываются байтовым watchdog; см. Streaming idle watchdogs.
До v2.1.227 Connection lost mid-response выглядело как Connection closed mid-response, а The response stopped arriving — как Response stalled mid-stream. Когда потерянное, дублированное или поврежденное событие потока поступает до того, как Claude начал какой-либо текст или вызов инструмента, вы не видите это уведомление:
  • Если Claude завершил только размышления, Claude Code отправляет запрос заново. Если повторные потоки прерываются таким же образом, ход завершается с Part of the response never arrived and no response was produced. Try again. или The response stream was malformed and no response was produced. Try again.
  • Если ничего не было завершено, Claude Code вместо этого повторно отправляет запрос без потоковой передачи. Если вы отключили этот резервный вариант с помощью CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK, ход завершается с API Error: Content block not found для потерянного события или API Error: Content block already closed для дублированного. Для поврежденного события при отключенном резервном варианте ход завершается с API Error: Stream event unreadable или необработанной ошибкой парсера.
В четырех случаях Claude Code обрабатывает сбой, не показывая это уведомление сразу:
  • На более раннем этапе ответа Claude Code либо повторяет попытку после сбоя, либо завершает ход с другой ошибкой. См. Автоматические повторные попытки.
  • Когда один из этих сбоев происходит после того, как Claude завершил ответ, Claude Code сохраняет полный ответ и завершает ход обычным образом, без этого уведомления. До v2.1.222 Claude Code показывал это уведомление, когда соединение разрывалось или зависало после завершения ответа, и сообщал о ходе как об ошибке, хотя ответ был полным.
  • В неинтерактивной сессии, например при запуске с -p, запуске через Agent SDK или в облачной сессии, вам не нужно самостоятельно отправлять continue, когда обрезанный ответ находится в основном диалоге и содержит текст, но не содержит вызовов инструментов: Claude Code сохраняет частичный вывод и предлагает Claude продолжить с того места, где он остановился, до трех раз подряд. Вы видите это уведомление для такого ответа только после того, как Claude Code исчерпал эти продолжения. До v2.1.246 Claude Code завершал неинтерактивный ход с этим уведомлением при первом же обрыве.
  • В субагенте, независимо от того, интерактивна ли сессия: когда его обрезанный ответ содержит текст, но не содержит вызовов инструментов, Claude Code предлагает субагенту продолжить. Уведомление становится последним сообщением субагента только после того, как эти продолжения исчерпаны. До v2.1.257 субагент показывал это уведомление при первом же обрыве.
Что делать:
  • В интерактивной сессии прочитайте ответ, оставшийся на экране: Claude Code сохраняет каждый блок, который Claude завершил до ошибки, но отбрасывает прерванный последний блок при завершении хода, поэтому последние предложения или вызовы инструментов могут отсутствовать. Ответьте continue, чтобы Claude продолжил с последнего завершенного блока.
  • В неинтерактивном режиме (-p):
    • При текстовом выводе по умолчанию Claude Code выводит последний завершенный блок текста, который у него еще сохранился с более ранней части хода, а за ним это сообщение. Если такого блока нет, Claude Code выводит только это сообщение — например, потому что Claude Code сжал диалог посреди хода и очистил этот текст. До v2.1.219 Claude Code выводил только это сообщение в текстовом выводе -p и отбрасывал уже сформированный ответ.
    • При --output-format json или stream-json Claude Code передает это сообщение в поле result.
    • Чтобы продолжить ход после стабилизации соединения, возобновите сессию и отправьте continue, как описано в разделе Продолжение диалогов.

Auto mode cannot determine the safety of an action

Модель, которую авторежим использует для классификации действий, не смогла вынести решение, поэтому авторежим не одобрил действие автоматически. Сообщение, которое вы видите, зависит от характера сбоя классификатора. Чтение, поиск и редактирование внутри вашего рабочего каталога не проходят через классификатор, поэтому во всех этих случаях они продолжают работать. Когда модель классификатора недоступна:
В интерактивной сессии вместо этого сообщения под вызовом инструмента появляется приглушенная строка Not run · auto mode's check had no usable answer. Нажмите Ctrl+O, чтобы прочитать сообщение в средстве просмотра транскрипта. Отказы, описанные в разделе The server returned no safety verdict, показывают ту же строку. До v2.1.296 сообщение появлялось под вызовом как красная ошибка. Когда Claude Code может определить категорию сбоя, он указывает ее в скобках после temporarily unavailable, например <model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now. Категории: (rate-limited), (overloaded), (server error), (timed out) и (connection failed). Если (timed out) или (connection failed) повторяется, проверьте соединение; см. Unable to connect to API. До v2.1.229 сообщение никогда не указывало категорию и выглядело как Wait briefly and then try this action again. Когда ни одна категория не подходит, сообщение появляется без категории в скобках; эту форму дают и несколько сбоев одновременно. На Amazon Bedrock, включая эндпоинт Mantle, оно также появляется, когда ваша учетная запись AWS не может вызвать модель, указанную в сообщении, и этот сбой повторяется при каждой повторной попытке, пока вашей учетной записи не будет предоставлен доступ к модели. Что делать:
  • Повторите попытку через несколько секунд; Claude видит то же сообщение и обычно повторяет попытку самостоятельно. Временный сбой не связан с доступностью авторежима; менять настройки не нужно
  • Если повторные попытки продолжают завершаться неудачей, продолжайте работу с задачами только для чтения и вернитесь к заблокированному действию позже
  • На Amazon Bedrock, если сообщение появляется при каждой повторной попытке, проверьте, может ли ваша учетная запись вызвать указанную в нем модель: для стандартных моделей Amazon Bedrock убедитесь, что ваша политика IAM разрешает ее вызов; для ID моделей Mantle свяжитесь с командой вашей учетной записи AWS
Когда запрос классификатора завершается сбоем, потому что ваш OAuth-токен истек или был заменен другой сессией, Claude Code обновляет токен и повторяет запрос один раз, поэтому обычное истечение срока действия токена не приводит к этому сообщению. До v2.1.216 истекший или замененный токен приводил к сбою каждого запроса классификатора, и авторежим отклонял каждое проверяемое действие с этим сообщением, пока токен не был обновлен. Когда классификатор вернул ответ, который не удалось разобрать:
Что делать:
  • Повторите действие; обычно следующая попытка проходит успешно
  • Запустите claude --debug и повторите действие, чтобы получить подробности в логе отладки
Когда отдельная проверка безопасности API заблокировала запрос классификатора из-за более раннего содержимого диалога:
Claude Code отклоняет действие, но сообщает Claude, что это не оценка действия как небезопасного, и что следует продолжить другие задачи, а не повторять попытку. Эти отказы не учитываются в порогах приостановки авторежима. При неинтерактивном запуске с -p Claude Code не останавливает выполнение. Что получает Claude, зависит от того, где было запрошено действие:
  • Фоновому субагенту при запуске с -p без --input-format stream-json Claude Code возвращает результат с ошибкой, содержащий Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode
  • Во всех остальных случаях, включая интерактивные сессии и основной диалог запуска с -p, Claude Code возвращает Claude этот отказ
До v2.1.225 Claude Code учитывал эти отказы в порогах приостановки и возвращал то же сообщение об отклонении, что и при настоящей блокировке классификатором. Что делать:
  • Это не решение относительно вашего действия. Содержимое, уже находящееся в вашем диалоге, вызвало срабатывание фильтра безопасности на стороне API, когда авторежим отправил диалог классификатору
  • Повторная попытка не поможет; то же содержимое диалога снова вызовет срабатывание фильтра
  • В интерактивной сессии переключитесь на другой режим разрешений, чтобы вы могли одобрить действие при появлении запроса
  • Начните новый диалог без содержимого, вызывающего срабатывание
Когда диалог превысил размер контекстного окна классификатора:
Что происходит с действием, зависит от того, где Claude его запросил:
  • В интерактивной сессии авторежим переключается на обычный запрос разрешения для этого действия, чтобы вы могли одобрить или отклонить его вручную
  • Фоновому субагенту при неинтерактивном запуске с -p без --input-format stream-json Claude Code возвращает результат с ошибкой, содержащий Agent aborted: auto mode classifier transcript exceeded context window in headless mode, и выполнение продолжается
  • В других местах запуска с -p без --permission-prompt-tool запросить разрешение негде, поэтому действие не выполняется, а выполнение продолжается
Что делать:
  • В интерактивной сессии одобрите или отклоните действие в появившемся запросе
  • В интерактивной сессии запустите /compact, чтобы уменьшить размер диалога и последующие действия снова помещались в окно классификатора

The server returned no safety verdict

При проверке классификатором на стороне сервера авторежим отклоняет действие, когда сервер не выносит по нему вердикт. Отказ указывает категорию в скобках, если Claude Code может ее определить, например (timed out):
Остальная часть сообщения сообщает Claude, может ли помочь одна повторная попытка. Перед некоторыми из этих отказов Claude Code делает паузу, чтобы следующая попытка Claude не последовала сразу. Во время ожидания в интерактивной сессии индикатор показывает Auto mode check unavailable с обратным отсчетом, а нажатие Esc прерывает ход. После десяти ответов подряд без вердикта авторежим останавливает ход:
Сообщение об остановке появляется в разных местах в зависимости от типа сессии:
  • В интерактивной сессии сообщение появляется как предупреждение в транскрипте, и ход завершается
  • При неинтерактивном запуске с -p выполнение завершается с ошибкой выполнения. При текстовом выводе по умолчанию сообщение выводится в stderr.
  • Когда лимит достигнут субагентом, субагент останавливается, не завершив работу, и Claude получает то, что он успел сформировать, с пометкой, что его остановил авторежим
Что делать:
  • Отправьте еще одно сообщение, чтобы Claude попробовал снова. Счетчик ответов начинается заново.
  • Если остановка повторяется и ваши запросы проходят через LLM-шлюз или прокси, проверьте, не обрывает ли он потоковые ответы или не переписывает ли их. В разделе Проверка классификатором на стороне сервера описано, какое поведение шлюза вызывает отказы, а руководство по совместимости шлюзов перечисляет, что нужно пропускать без изменений.
  • Установите CLAUDE_CODE_AUTO_MODE_SERVER=0 перед запуском Claude Code, чтобы вместо этого использовать его собственные запросы к классификатору. До v2.1.281 Claude Code не учитывал эту переменную при прямом подключении к Anthropic API.
  • Чтобы вместо этого одобрять действия самостоятельно, выйдите из авторежима
До v2.1.280 Claude Code немедленно отклонял каждое действие из ответа без вердикта и никогда не останавливал ход.

Agent terminated early due to an API error

API-запрос субагента окончательно завершился сбоем, например потому что был достигнут лимит использования или были исчерпаны повторные попытки после ошибки сервера, поэтому субагент остановился, не завершив задачу. Это сообщение требует Claude Code v2.1.199 или новее; до этого текст ошибки API возвращался Claude так, как если бы это был результат субагента.
Что делать: Когда ограничение частоты запросов, перегрузка или ошибка сервера прерывает субагента переднего плана, который уже сформировал текстовый вывод, Claude вместо этой ошибки получает этот частичный вывод с пометкой о неполноте. Субагент, весь вывод которого состоял из вызовов инструментов, тоже получает эту ошибку; в v2.1.199 в таком случае вместо этого возвращался пустой частичный результат. См. Ошибки API в субагентах.

Лимиты использования

Большинство ошибок в этом разделе означают, что достигнута квота, привязанная к вашей учётной записи или плану. Три работают по-другому: Server is temporarily limiting requests — это серверное ограничение частоты запросов, не связанное с квотой вашего плана, Usage credits required for 1M context — это проверка прав доступа, а не исчерпанная квота, и The prompt to confirm went unanswered означает, что запрос согласия на использование кредитов закрыт без ответа, независимо от того, была ли достигнута квота.

You’ve hit your session limit

Планы подписки включают скользящий лимит использования. Когда он заканчивается, вы видите одно из этих сообщений:
Claude Code блокирует дальнейшие запросы до времени сброса, указанного в сообщении. Лимиты сессии и недели являются общими для всех моделей, поэтому переключение моделей не восстанавливает доступ. Лимиты Opus и Sonnet применяются только к запросам к соответствующему семейству моделей, поэтому переключение на модель вне семейства с помощью /model позволяет вам продолжить работу. В интерактивной сессии, в которую выполнен вход с подпиской claude.ai, Claude Code также может ждать в открытой сессии и продолжить прерванную задачу вскоре после сброса. См. Wait for a usage limit to reset, чтобы узнать, что вы увидите, как начать или отменить ожидание и как отключить автоматическое продолжение. До версии v2.1.234 Claude Code не предлагал это ожидание. Использование учитывается одновременно в лимитах сессии и недели. Один всплеск интенсивной активности, такой как большой fanout рабочего процесса, может исчерпать недельный лимит до сброса окна сессии. Что делать:
  • Дождитесь времени сброса, указанного в ошибке
  • На вкладке Code в Desktop app карточка session-limit предлагает флажок Auto-continue when limits reset. Карточка weekly-limit этого не предлагает. Когда он отмечен, Desktop app повторяет прерванный ход после сброса и показывает время повторной попытки на карточке. Флажок Desktop и настройка Continue automatically at usage limit в CLI в /config являются отдельными, поэтому отключайте каждую отдельно.
  • Для лимита Opus или Sonnet запустите /model и переключитесь на модель вне этого семейства, чтобы продолжить работу. Каждая модель имеет свой собственный кэш промптов, поэтому следующий запрос повторно читает весь диалог без попаданий в кэш; см. Switching models
  • Запустите /usage, чтобы увидеть лимиты вашего плана и когда они сбрасываются
  • Запустите /usage-credits, чтобы купить дополнительное использование на Pro и Max, или запросить его у администратора на Team и Enterprise. См. usage credits for paid plans, чтобы узнать, как это оплачивается.
  • Чтобы обновить ваш план для более высоких базовых лимитов, см. claude.com/pricing
Перед тем как окно закончится, Claude Code может предупредить вас, что вы использовали большую его часть, сообщением, таким как You've used 85% of your session limit · resets 3:45pm. Чтобы непрерывно отслеживать оставшийся лимит, добавьте поля rate_limits в custom status line, или в Desktop app нажмите usage ring рядом с выбором модели.

Usage credits required for 1M context

Выбранная модель использует расширенное контекстное окно на 1M токенов, и ваш план включает его только через кредиты использования.
В сессии, которую запускает Claude Desktop app, подсказка не называет команды: она указывает на страницу настроек использования claude.ai, или на планах Team и Enterprise говорит включить кредиты использования на claude.ai/admin-settings/usage или попросить вашего администратора. Это проверка прав доступа, а не исчерпание квоты. Она срабатывает, даже когда в ваших лимитах сессии и недели остаётся запас. См. Extended context, чтобы узнать, какие планы включают контекст 1M напрямую, а какие требуют кредитов использования. Когда эта ошибка появляется в середине диалога, потому что контекст превысил 200K токенов, Claude Code автоматически сжимает диалог обратно под стандартный лимит контекста и в дальнейшем сохраняет сессию на этом лимите, поэтому никаких действий не требуется. В версиях до v2.1.172 ошибка повторялась при каждом последующем запросе, включая /compact; для восстановления на этих версиях запустите /clear. Приведённые ниже шаги применяются, когда вы явно выбрали модель [1m]. Что делать:
  • Запустите /model и выберите вариант без суффикса [1m], чтобы вернуться к стандартному контекстному окну
  • Если сообщение называет /usage-credits, запустите эту команду, чтобы включить биллинг по факту использования для варианта 1M на Pro и Max, или запросить кредиты использования у администратора на Team и Enterprise. После включения кредитов использования перезапустите Claude Code или начните новую сессию, в зависимости от того, что говорит сообщение. До этого сессия остаётся на стандартном лимите контекста.
  • Если ошибка сохраняется после /model, ID модели 1M может быть задан в другом месте. См. Setting your model, где перечислены места конфигурации для проверки в порядке приоритета.
  • Чтобы полностью удалить варианты 1M из выбора модели, установите CLAUDE_CODE_DISABLE_1M_CONTEXT=1
До версии v2.1.268 сообщение заканчивалось на run /usage-credits to turn them on, or /model to switch to standard context и не упоминало перезапуск.

The prompt to confirm went unanswered

Если ваша учётная запись требует Fable usage-credits consent, Claude Code просит вас подтвердить, прежде чем запрос Fable будет оплачен кредитами использования. Когда запрос согласия закрывается без ответа, Claude Code завершает ход одним из этих сообщений:
Сообщения называют модель Fable сессии, поэтому на Fable 5 они гласят continuing on Fable 5 и Fable 5 now uses usage credits. До версии v2.1.257 первое сообщение начиналось с Fable 5 limit reached. Это происходит в сессиях Remote Control, фоновых сессиях, сессиях участников команды агентов и сессиях, которые другое приложение размещает через Agent SDK. О том, когда Claude Code закрывает запрос, см. Fable and usage credits. Что делать:
  • Там, где работает сессия, в терминале или в приложении, которое её размещает, отправьте ещё один промпт и ответьте на запрос согласия, когда он появится снова. Для фоновой сессии сначала подключитесь к ней из agents view. Повторная отправка из клиента Remote Control снова показывает это сообщение, потому что клиент не может отобразить запрос.
  • Запустите /model, чтобы переключиться на модель, которая не оплачивается кредитами использования
  • Чтобы дать себе больше времени, установите для dialogExpiry более длительное значение или "never"
До версии v2.1.236 это сообщение не появлялось: пока был подключён клиент Remote Control, Claude Code ждал ответа 60 секунд, а затем продолжал ход на вашей модели по умолчанию.

Server is temporarily limiting requests

API применил кратковременное ограничение частоты запросов, которое не связано с квотой вашего плана.
Claude Code отличает это от лимита вашего плана по отсутствию унифицированных заголовков квоты, которые содержит ответ при реальном лимите. Начиная с версии v2.1.199 для этой ошибки автоматически выполняются повторные попытки с backoff перед отображением, независимо от способа аутентификации. В более ранних версиях сессия, в которую выполнен вход с подпиской claude.ai, завершала ход с ошибкой при первом же возникновении; повторные попытки выполнялись только при входе с API-ключом и через Enterprise. Что делать:
  • Подождите немного и попробуйте снова
  • Проверьте status.claude.com, если проблема сохраняется

Request rejected (429)

Вы достигли ограничения частоты запросов, настроенного для вашего API-ключа, проекта Amazon Bedrock или проекта Google Cloud.
Завершающее предложение указывает, где проверить состояние сервиса, и зависит от поставщика. Конфигурации Amazon Bedrock, Google Cloud’s Agent Platform и Microsoft Foundry указывают страницу статуса соответствующего поставщика вместо страницы статуса Anthropic. Пользовательский ANTHROPIC_BASE_URL указывает хост шлюза. Когда прокси, балансировщик нагрузки или шлюз между Claude Code и API отвечает своей собственной HTML-страницей 429, текст после · — это заголовок этой страницы, если он есть, например Too Many Requests. До версии v2.1.281 после · выводилась вся разметка страницы. Что делать:
  • Запустите /status и убедитесь, что активные учётные данные — те, которые вы ожидаете. Случайный ANTHROPIC_API_KEY в вашей среде может направлять запросы через ключ низкого уровня вместо вашей подписки.
  • Проверьте в консоли вашего поставщика действующие лимиты и при необходимости запросите более высокий уровень
  • Для API-ключей Anthropic см. rate limits reference, чтобы узнать, как работают уровни и как установить ограничения для рабочего пространства
  • Снизьте параллелизм: уменьшите CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY, избегайте запуска множества параллельных субагентов или переключитесь на меньшую модель с помощью /model для высокообъёмных скриптовых запусков

You’ve hit your monthly spend limit

Включённое в ваш план использование не может покрыть этот запрос, а usage credits, которые в противном случае оплатили бы его, достигли лимита расходов. Это происходит, когда одно из окон использования вашего плана закончилось, или когда запрос относится к тем, которые оплачиваются только кредитами использования, например запрос к модели, которая оплачивается кредитами использования. Сообщение указывает, чей лимит вас заблокировал. Текст после · говорит, как увеличить этот лимит, и зависит от вашего плана и от того, управляете ли вы биллингом:
team's shared budget — это общий бюджет, который администратор назначил группе, в которую вы входите; сообщение не называет группу. channel's monthly spend limit — это бюджет того канала Slack, в котором работает сессия, поэтому у вашей организации может оставаться бюджет за его пределами. Когда закончилось одно из окон вашего плана, сообщение также говорит, когда это окно сбрасывается, например · your session limit resets 3:45pm, и в это время доступ возвращается без повышения лимита. В организациях с биллингом на основе использования сообщение говорит usage limit вместо spend limit, как в You've hit your individual usage limit. Если вы подключаетесь через шлюз приложений Claude и видите spend limit reached в нижнем регистре, это ограничение вашего оператора шлюза; см. Spend limit reached. Что делать:
  • На Pro и Max увеличьте ваш ежемесячный лимит расходов в Settings > Usage на claude.ai или запустите /usage-credits
  • На Team и Enterprise увеличьте лимит в Organization settings > Usage, если вы управляете биллингом, или попросите администратора. /usage-credits отправляет этот запрос вашему администратору за вас
  • Для лимита канала попросите владельца организации или менеджера канала повысить его на claude.ai. См. Per-channel limits в документации Claude Tag
  • Если сообщение называет время сброса окна вашего плана, вы можете вместо этого дождаться его
  • Запустите /usage, чтобы увидеть окна вашего плана и время сброса каждого

Spend limit reached

Вы подключаетесь через Claude apps gateway и превысили spend cap, установленный вашим оператором шлюза. Шлюз блокирует ваши запросы до сброса указанного периода или пока оператор не повысит ограничение. Он помечает каждый заблокированный ответ 429 как x-should-retry: false, поэтому Claude Code показывает это сообщение без повторных попыток.
Сообщение указывает период ограничения и время сброса, а если оператор настроил blocked_message, за ним следуют его инструкции. До версии v2.1.225 сообщение гласило только spend limit reached; шлюз на более старой версии по-прежнему отправляет эту краткую форму. Что делать:
  • Дождитесь времени сброса, указанного в сообщении, или следуйте инструкциям оператора, если сообщение их содержит
  • Попросите вашего оператора шлюза повысить ограничение, если вы регулярно его достигаете
Связанное сообщение, spend limit unavailable, означает, что шлюз не смог прочитать свои записи о расходах и заблокировал запрос в качестве меры предосторожности, а не из-за превышения вашего ограничения. Обычно это проходит само; если проблема сохраняется, сообщите вашему оператору шлюза.

Credit balance is too low

В вашей организации Console закончились предоплаченные кредиты, или Claude Code отправляет ваши запросы с API-ключом Console, хотя вы собирались использовать вашу подписку.
Что делать:
  • Если у вас план Pro, Max, Team или Enterprise и вы видите это сообщение, запустите /status и проверьте строку API key. Одобренный ANTHROPIC_API_KEY в вашей среде направляет запросы через этот ключ вместо вашей подписки. Удалите его из текущей оболочки и из профиля оболочки, затем перезапустите claude. Запустите /login, если вы ещё не вошли с вашей подпиской.
  • Пополните кредиты на platform.claude.com/settings/billing и рассмотрите возможность включить там автоматическое пополнение, чтобы баланс пополнялся до того, как опустится до нуля
  • Установите ограничения расходов для рабочих пространств в Console, чтобы один проект не исчерпал баланс организации. См. Manage costs effectively.

Could not update your spend limit

Сервер отклонил изменение лимита расходов, которое вы внесли в окне запроса, появляющемся при достижении лимита расходов.
Когда сервер объясняет отклонение, сообщение заканчивается этой причиной, и повторная попытка с тем же значением снова завершится неудачей. Когда у сбоя нет причины от сервера, например при разрыве соединения, сообщение гласит Could not update your spend limit. Press Enter to retry., и повторная попытка может оказаться успешной. До версии v2.1.216 Claude Code показывал общую форму при любом сбое. Что делать:
  • Если сообщение содержит причину, выберите лимит, который ей удовлетворяет, например меньшую сумму
  • Если сообщение показывает только общую форму, повторите попытку; сбой может быть временным
  • Если изменение по-прежнему не удаётся, внесите его вместо этого в claude.ai billing settings в браузере

Ошибки аутентификации

Эти ошибки означают, что Claude Code не может подтвердить API вашу личность. Запустите /status в любой момент, чтобы узнать, какие учётные данные сейчас активны.

Не выполнен вход

Для этой сессии нет действительных учётных данных.
В сессии, которую запускает приложение Claude Desktop, например на вкладке Code или в Cowork, сообщение выглядит как Authentication required · Sign in again to continue, и повторный вход выполняется из приложения. Если вы входите со своей учётной записью claude.ai в другом окне Claude Code, которое использует тот же каталог конфигурации, интерактивная сессия, показывающая это сообщение, начинает использовать этот вход самостоятельно. Перезапускать её не нужно. До версии v2.1.286 в macOS сессия могла продолжать показывать это сообщение после того, как вы вошли из другого окна. В этих версиях перезапустите сессию, которая показывает сообщение. Что делать:
  • Запустите /login, чтобы пройти аутентификацию с подпиской Claude или учётной записью Console
  • Если вы ожидали, что аутентификация пройдёт через переменную окружения, убедитесь, что ANTHROPIC_API_KEY задана и экспортирована в оболочке, в которой вы запустили claude
  • Для CI или автоматизации, где интерактивный вход невозможен, настройте скрипт apiKeyHelper, который получает ключ при запуске
  • См. Приоритет аутентификации, чтобы понять, какие учётные данные использует Claude Code, когда их несколько
Если вам многократно предлагают войти, см. Не выполнен вход или токен истёк, где описаны проверки системных часов и шаги восстановления хранилища учётных данных macOS.

Не удалось определить метод аутентификации

Сессия обратилась к API-клиенту без каких-либо учётных данных. Фоновые сессии и облачные сессии показывают это сообщение, когда рабочий процесс запускается без учётных данных. Интерактивные запуски, запуски с -p и запуски Agent SDK сообщают о том же состоянии как Не выполнен вход и записывают эту строку только в свой отладочный лог, поэтому если вы нашли её там, следуйте указаниям из того раздела.
В текущих версиях ошибка означает, что рабочему процессу не были доступны никакие учётные данные. До версии v2.1.174 фоновая сессия, назначенная простаивающему предварительно инициализированному рабочему процессу, могла завершаться этой ошибкой, даже когда были настроены действительные учётные данные. До версии v2.1.176 то же могло происходить с облачной сессией, которая простаивала до того, как её забрали. Обновитесь, чтобы устранить проблему. Что делать:
  • Обновитесь до версии v2.1.176 или новее, если это появляется в фоновой или облачной сессии, а ваши учётные данные уже настроены
  • Убедитесь, что ANTHROPIC_API_KEY, CLAUDE_CODE_OAUTH_TOKEN или учётные данные вашего облачного провайдера заданы в окружении, которое запускает рабочий процесс, а не только в вашей интерактивной оболочке
  • Для Agent SDK см. настройку аутентификации в быстром старте
  • Запустите /status в интерактивной сессии в том же окружении, чтобы проверить, какой источник учётных данных определяется

Недействительный API-ключ

Переменная окружения ANTHROPIC_API_KEY или скрипт apiKeyHelper вернули ключ, который API отклонил, или Claude Code заблокировал ключ из ANTHROPIC_API_KEY до его отправки.
Если после Fix external API key сообщение продолжается описанием вроде Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines)., API ключ так и не получил. Claude Code обнаружил символ, который не может передаваться в HTTP-заголовках, и остановил запрос до отправки. См. Недопустимое значение заголовка запроса, чтобы узнать, как читать описание и исправить значение. Что делать:
  • Проверьте наличие опечаток и убедитесь, что ключ не был отозван в Console
  • В той же оболочке выполните env | grep ANTHROPIC или в PowerShell Get-ChildItem Env:ANTHROPIC*. Такие инструменты, как direnv, плагины оболочки dotenv и терминалы IDE, могут загружать устаревший ключ из файла .env в вашем проекте без того, чтобы вы задавали его явно.
  • Сбросьте ANTHROPIC_API_KEY и запустите /login, чтобы использовать аутентификацию по подписке
  • Если ключ поступает из скрипта apiKeyHelper, запустите скрипт напрямую, чтобы убедиться, что он выводит действительный ключ в stdout
  • Запустите /status, чтобы проверить, какой источник учётных данных фактически использует Claude Code

Ваш скрипт apiKeyHelper завершается с ошибкой

Claude Code выполнил команду из вашей настройки apiKeyHelper и не получил ключ. Без него запрос доходит до API с учётными данными-заглушкой, и API отклоняет его с 401. Панель Authentication в терминале показывает, что именно произошло:
  • Команда завершилась с ошибкой или по таймауту
  • Команда ничего не вывела в stdout
  • Команда вывела что-то помимо ключа, например баннер входа или строку лога. Панель показывает returned output that cannot be used as an API key и сообщает, что не так, не повторяя сам вывод. До версии v2.1.227 Claude Code отправлял всё, что выводила команда, после удаления окружающих пробелов.
В неинтерактивном режиме stderr также содержит конкретную причину с префиксом apiKeyHelper failed:. Перед показом этого сообщения Claude Code повторно запускает скрипт и повторяет запрос ещё до двух раз, поэтому сбой проявляется в пределах трёх попыток. До версии v2.1.208 Claude Code тратил весь лимит повторных попыток на повторную отправку запроса с учётными данными-заглушкой, а затем сообщал об общей ошибке аутентификации 401 вместо сбоя скрипта. Запуск /login здесь не помогает: вывод хелпера имеет приоритет над сохранённым входом, пока эта настройка присутствует. Что делать:
  • Запустите команду, настроенную в apiKeyHelper, напрямую в оболочке, чтобы воспроизвести сбой
  • Если команда сообщает об истёкшей сессии, пройдите повторную аутентификацию у своего провайдера учётных данных, например снова войдите в SSO или хранилище секретов
  • Исправьте команду так, чтобы она выводила в stdout только ключ — один токен из печатаемых символов ASCII длиной до 16 384 символов — и завершалась с кодом выхода 0. Рабочую настройку см. в разделе ротация учётных данных с помощью apiKeyHelper.
  • Запустите /status, чтобы увидеть сбой и убедиться, что apiKeyHelper — активный источник учётных данных. Строка apiKeyHelper показывает Failing с подробностями последнего сбоя, такими как код выхода и вывод ошибки команды, и исчезает после следующего успешного запуска. До версии v2.1.274 /status показывал только источник учётных данных, но не сбой.
  • При каждом сбое команды её код выхода и вывод ошибки также появляются в панели Authentication в терминале. До версии v2.1.212 панель называлась Cloud authentication.

Недопустимое значение заголовка запроса

Значение, которое Claude Code собирался отправить как заголовок запроса, содержит символ, который не может передаваться в HTTP-заголовках: перевод строки, байт NUL или символ выше U+00FF, например фигурную кавычку или пробел нулевой ширины. Claude Code останавливает запрос до какой-либо отправки и называет переменную или настройку, которую нужно исправить. Обычная причина — учётные данные, вставленные из документа или чата, которые содержали невидимый символ или случайный перевод строки. Claude Code выполняет эту проверку, когда отправляет запросы к Claude API напрямую или через LLM-шлюз. При использовании стороннего облачного провайдера, например Amazon Bedrock, Claude Code не выполняет её перед отправкой.
Первая часть сообщения зависит от того, откуда пришло неверное значение:
  • Invalid auth token: Bearer-токен из ANTHROPIC_AUTH_TOKEN или CLAUDE_CODE_OAUTH_TOKEN
  • Invalid ANTHROPIC_CUSTOM_HEADERS: имя или значение заголовка, которое вы задали в ANTHROPIC_CUSTOM_HEADERS. Описание указывает порядковый номер проблемной пары Name: Value, например distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS, не повторяя имя или значение, поскольку оба выбрали вы.
  • Invalid request header from the environment: значение, которое Claude Code копирует в заголовок запроса из другой переменной окружения, например CLAUDE_AGENT_SDK_CLIENT_APP. Описание называет переменную, которую нужно исправить.
О неверном ANTHROPIC_API_KEY, обнаруженном этой проверкой, Claude Code сообщает как о Недействительном API-ключе, с тем же описанием в конце. О неверных сохранённых учётных данных /login он сообщает как о Не выполненном входе; запустите /login, чтобы сохранить новые. Вывод скрипта apiKeyHelper никогда не попадает в эту проверку: Claude Code проверяет его при запуске скрипта, и вывод, который не может передаваться в HTTP-заголовке, приводит к ошибке Ваш скрипт apiKeyHelper завершается с ошибкой. После второго · сообщение описывает проблему, как в этом полном примере:
Позиции символов отсчитываются с единицы. Описание строится из фиксированных фраз и счётчиков символов, поэтому никогда не содержит само значение. Оно называет проблемный символ только тогда, когда это общеизвестный невидимый или типографский символ, например метка порядка байтов, пробел нулевой ширины или фигурная кавычка, а обо всём остальном сообщает как a non-ASCII character. Что делать:
  • Заново задайте переменную или настройку, указанную в сообщении, перепечатав символы вокруг указанной позиции вручную, а не вставляя их снова из того же источника
  • Для ANTHROPIC_CUSTOM_HEADERS указывайте по одной паре Name: Value на строку и перепишите пару, номер которой указан в сообщении
  • Запустите /status, чтобы проверить, какой источник учётных данных активен

Эта организация отключена

Claude Code использует устаревший ANTHROPIC_API_KEY из отключённой организации Console. Если у вас есть сохранённый вход по подписке, ключ имеет приоритет над ним.
Подсказка после · зависит от ваших сохранённых учётных данных: первая форма появляется, когда сохранённый /login может взять управление на себя после сброса ключа, а вторая — когда ключ является вашими единственными учётными данными. Переменные окружения имеют приоритет над /login, поэтому ключ, экспортированный в профиле оболочки или загруженный из файла .env, используется даже при наличии работающей подписки Pro или Max. В неинтерактивном режиме (-p) ключ всегда используется, если он задан. Что делать:
  • Сбросьте ANTHROPIC_API_KEY в текущей оболочке и удалите его из профиля оболочки, затем перезапустите claude
  • Если в сообщении сказано Update or unset, у вас нет сохранённого входа, на который можно переключиться. Сбросьте ключ и запустите /login или замените ключ на ключ из активной организации Console.
  • После этого запустите /status, чтобы убедиться, что активные учётные данные — это ваша подписка
  • Если никакая переменная окружения не задана, а ошибка сохраняется, обратитесь в поддержку или войдите с другой учётной записью.

Ваша организация отключила аутентификацию по API-ключу

Это сообщение требует Claude Code версии v2.1.169 или новее. Администратор вашей организации Console отключил аутентификацию по API-ключу, поэтому API отклоняет ключ, который отправляет Claude Code. Подсказка по восстановлению после · зависит от того, откуда взялся ключ:
Последняя форма появляется в сессии, которую запускает приложение Claude Desktop, например на вкладке Code или в Cowork, где повторный вход выполняется из приложения. Переменные окружения и apiKeyHelper имеют приоритет над /login, поэтому один только запуск /login не помогает, пока любой из них всё ещё предоставляет ключ. См. Приоритет аутентификации. Что делать:
  • Если в сообщении названа ANTHROPIC_API_KEY, сбросьте её в текущей оболочке и удалите из профиля оболочки или файла .env, затем перезапустите claude
  • Если в сообщении назван apiKeyHelper, удалите настройку apiKeyHelper из своего settings.json
  • Запустите /login, чтобы войти со своей учётной записью claude.ai
  • После этого запустите /status, чтобы убедиться, что активные учётные данные — это ваша подписка, а не API-ключ
  • Если вам нужна аутентификация по API-ключу для автоматизации, попросите администратора организации снова включить её в Console

Ваша организация отключила доступ по подписке Claude

Ваша организация Claude не разрешает вход в Claude Code по подписке. Повторный запуск /login с той же учётной записью возвращает ту же ошибку.
Это серверная настройка организации, поэтому её нельзя переопределить локальными настройками, переменными окружения или флагами CLI. Agent SDK и неинтерактивный режим -p сообщают об этом кодом ошибки oauth_org_not_allowed. Что делать:
  • Попросите администратора включить доступ к Claude Code для вашей организации
  • Пройдите аутентификацию с API-ключом Console вместо подписки. Инструкции по настройке см. в разделе Аутентификация через Claude Console.
  • Если вы администратор и не видите возможности включить доступ, обратитесь в поддержку Anthropic

Routines отключены политикой вашей организации

Owner в вашей организации Team или Enterprise отключил routines на уровне организации. Ошибка появляется, когда вы пытаетесь создать или запустить routine, например из интерфейса Routines на claude.ai/code. В Claude Code версии v2.1.227 или новее та же настройка также скрывает /schedule в CLI.
Это серверная настройка, поэтому её нельзя переопределить локальными настройками, переменными окружения или флагами CLI. Что делать:

Remote Control требует Anthropic API

Сессия не обращается к Anthropic API напрямую, а это необходимо для Remote Control.
Второе предложение объясняет, что направило сессию в обход Anthropic API; до версии v2.1.219 сообщение состояло только из первого предложения. В зависимости от причины сообщение называет:
  • Переменную провайдера CLAUDE_CODE_USE_*, например CLAUDE_CODE_USE_BEDROCK для Amazon Bedrock или CLAUDE_CODE_USE_VERTEX для Google Cloud’s Agent Platform
  • ANTHROPIC_BASE_URL, указывающую на хост, отличный от api.anthropic.com, например на LLM-шлюз или прокси, даже если вы входите через claude.ai; до версии v2.1.196 пользовательский базовый URL не блокировал Remote Control
  • Заданную ANTHROPIC_UNIX_SOCKET, из-за которой сессия отправляет запросы через локальный сокет, а не на api.anthropic.com
  • Вход через корпоративный облачный шлюз, выполненный через /login, который не поддерживает Remote Control и не имеет переменной, которую можно сбросить
Что делать:
  • Сбросьте переменную, указанную в сообщении, например CLAUDE_CODE_USE_BEDROCK или ANTHROPIC_BASE_URL, и перезапустите сессию либо запустите Remote Control из сессии, которая обращается к Anthropic API напрямую
  • Если переменная не задана в вашей оболочке, проверьте ключ env в ваших файлах настроек, который применяет переменные окружения к каждой сессии
  • Об этом и других сообщениях при запуске Remote Control см. Устранение неполадок Remote Control

Remote Control не удалось обновить ваш вход

Claude Code поддерживает активное подключение Remote Control с помощью краткосрочных учётных данных, которые он получает и обновляет, используя ваш сохранённый вход claude.ai. Когда claude.ai перестаёт принимать этот вход или у Claude Code не остаётся сохранённого входа, Claude Code останавливает Remote Control, и вам нужно войти снова. Любой из этих сбоев может произойти, пока Claude Code ещё подключается, или позже, когда он обновляет учётные данные. Когда Claude Code просит службу входа обновить ваш сохранённый вход и не получает ответа, он продолжает работу Remote Control и повторяет попытку обновления, пока текущие учётные данные подключения ещё действительны. Обновление остаётся без ответа, когда Claude Code не может связаться со службой входа, запрос завершается по таймауту или служба даёт сбой, не отклоняя ваш вход. Если служба входа так и не отвечает к моменту истечения этих учётных данных, Claude Code останавливает Remote Control и сообщает OAuth token refresh failed. Когда Claude Code останавливает Remote Control, он показывает причину в предупреждении и в строке транскрипта, начинающейся с Remote Control disconnected. Ваша локальная сессия продолжает работать без Remote Control. Этот раздел охватывает следующие строки:
Claude Code называет причину в середине сообщения:
  • Claude.ai login expired и Claude.ai login was rejected: claude.ai больше не принимает ваш сохранённый токен входа, потому что он истёк или был отозван
  • OAuth token unavailable: у Claude Code не было сохранённого токена входа, когда подошёл срок обновления учётных данных подключения
  • OAuth token refresh failed: claude.ai отклонил ваш сохранённый токен входа, пока Claude Code переподключался, и обновление токена не дало нового
  • JWT refresh failed: no OAuth token: Claude Code не нашёл сохранённого токена входа для обновления
  • Signed out of Claude: вы вышли из учётной записи на этой машине, например запустив /logout в другом терминале, поэтому у Claude Code не осталось сохранённого входа для обновления подключения
Что делать:
  • Запустите /login, чтобы войти снова
  • Запустите /remote-control, чтобы переподключить сессию. Для сообщений, заканчивающихся на run /login to restore Remote Control, этот шаг не нужен: Claude Code переподключается самостоятельно после вашего входа.
До версии v2.1.224 сообщение OAuth token refresh failed — run /login to re-authenticate выглядело как OAuth token refresh failed — re-authenticate, then re-enable Remote Control, а JWT refresh failed: no OAuth token — run /login — как no OAuth token available for recovery (code <N>). Сообщения Claude.ai login expired, Claude.ai login was rejected и OAuth token unavailable были добавлены в версии v2.1.225. До версии v2.1.238 Claude Code сообщал о случаях, которые теперь отображаются как Signed out of Claude, как JWT refresh failed: no OAuth token — run /login, и останавливал Remote Control с сообщением Claude.ai login expired — run /login to restore Remote Control, как только одна попытка обновления входа оставалась без ответа.

Remote Control остановлен, потому что сменилась учётная запись, в которую выполнен вход

Claude Code показывает эту строку во время сессии Remote Control, когда вы входите в другую учётную запись или организацию claude.ai на этой машине. Вы выполнили переключение вне сессии Claude Code, например запустив /login в другом терминале. Сессия Remote Control, которую вы запустили, войдя через /login, принадлежит той учётной записи и организации claude.ai, в которые был выполнен вход в тот момент.
Claude Code останавливает сессию Remote Control, как только claude.ai подтверждает, что учётная запись или организация изменилась. Ваша локальная сессия продолжает работать без Remote Control. Что делать:
  • Запустите /remote-control, чтобы начать новую сессию Remote Control под текущей учётной записью или организацией
  • Чтобы переключиться обратно, запустите /login и снова войдите в предыдущую учётную запись или организацию. Затем запустите /remote-control.
До версии v2.1.234 Claude Code не замечал, когда вы переключались на другую учётную запись или организацию вне сессии Claude Code. Claude Code сохранял подключение сессии Remote Control до тех пор, пока очередной запрос к серверу Remote Control не завершался ошибкой Remote Control server rejected the request (HTTP 404). Этот сбой мог произойти через несколько часов после переключения.

Remote Control остановлен, потому что приложение, в котором работает сессия, вышло из учётной записи или сменило её

Когда вашу сессию размещает настольное приложение Claude или IDE, Claude Code получает токен входа от этого приложения, а не от /login. Когда claude.ai отклоняет этот токен, Claude Code запрашивает у приложения новый. Если приложение отвечает, что из него выполнен выход или что теперь в нём выполнен вход в другую учётную запись Claude, Claude Code завершает сессию Remote Control и отправляет приложению одну из этих строк:
Ваша локальная сессия продолжает работать без Remote Control. Что делать:
  • Если из приложения выполнен выход, снова войдите в него, затем снова включите Remote Control в приложении
  • Если приложение сменило учётную запись, Claude Code не может продолжить завершённую сессию под новой учётной записью. Начните новую сессию Remote Control под этой учётной записью.
До версии v2.1.238 в обоих случаях Claude Code отправлял приложению сообщения с run /login, перечисленные в разделе Remote Control не удалось обновить ваш вход.

OAuth-токен отозван или истёк

Ваш сохранённый вход больше недействителен. Отозванный токен означает, что вы вышли из всех сессий или администратор отозвал доступ; истёкший токен означает, что автоматическое обновление не удалось посреди сессии. Оба сообщения сообщают об отказе, который API вернул на запрос, отправленный Claude Code. Если сохранённый вход уже был удалён после неудачного обновления, вместо этого вы видите Срок входа истёк. Если вы проходите аутентификацию с долгосрочным токеном в CLAUDE_CODE_OAUTH_TOKEN, вы видите те же сообщения, когда этот токен истекает или отзывается.
В неинтерактивном режиме (-p) и в Agent SDK сообщения выглядят следующим образом, а структурированный код ошибки — authentication_failed:
До версии v2.1.287 в неинтерактивном режиме и в Agent SDK сообщение об отзыве выглядело как Your account does not have access to Claude. Please login again or contact your administrator. Что делать:
  • Запустите /login в промпте Claude Code, чтобы войти снова
  • Если ваша команда -p или программа Agent SDK использует сохранённый вход, запустите claude в том же окружении, выполните /login, затем снова запустите команду или программу. Для автоматизации, в которой невозможен интерактивный вход, используйте аутентификацию с ANTHROPIC_API_KEY или сгенерируйте долгосрочный токен с помощью claude setup-token.
  • Если вы проходите аутентификацию с переменной окружения CLAUDE_CODE_OAUTH_TOKEN, Claude Code продолжает отправлять заданное вами значение после того, как запрос завершается ошибкой 401, а не переключается на токен сохранённого входа. /status показывает эти учётные данные как строку Auth token со значением CLAUDE_CODE_OAUTH_TOKEN. Сгенерируйте новый токен с помощью claude setup-token и перезапустите с ним либо сбросьте переменную и запустите /login. До версии v2.1.225 Claude Code мог посреди сессии заменить значение переменной краткосрочным токеном доступа из сохранённого входа, и сессия снова завершалась ошибками 401 после истечения этого токена.
  • При повторяющихся предложениях войти при каждом запуске см. проверки системных часов и шаги восстановления хранилища учётных данных macOS в разделе Устранение неполадок
  • О других сбоях, включая 403 Forbidden и проблемы с OAuth в браузере, см. Вход и аутентификация

API Error: 401 Invalid authentication credentials

API распознал формат ваших учётных данных, но отклонил стоящую за ними учётную запись или организацию. Anthropic возвращает это сообщение, когда учётные данные были недавно отозваны, когда организация была отключена или удалила ваш доступ, или когда сама учётная запись была деактивирована, поэтому причина не в истёкшем токене. Учётными данными может быть ваш сохранённый вход или одобренный ANTHROPIC_API_KEY, и способ исправления различается, поэтому начните с запуска /status, чтобы узнать, какие из них активны.
Что делать:
  • Если /status показывает строку API key, которая не помечена как неиспользуемая, активными учётными данными является одобренный ANTHROPIC_API_KEY, и он имеет приоритет над вашим входом, поэтому /login его не заменяет. Выполните ротацию ключа в Claude Console или вернитесь к подписке, выполнив unset ANTHROPIC_API_KEY или в PowerShell Remove-Item Env:ANTHROPIC_API_KEY.
  • Если /status показывает только ваш вход, запустите /login один раз. Если учётные данные были отозваны, новый вход заменит их.
  • Если то же сообщение возвращается для той же учётной записи, учётная запись или организация больше не активна. Проверьте учётную запись и организацию, которые показывает /status, и попросите администратора организации восстановить доступ.
  • Если ANTHROPIC_BASE_URL указывает на LLM-шлюз, текст после 401 — это сообщение вашего шлюза, а не Anthropic, и /login его не меняет. Вместо этого исправьте учётные данные, которые ожидает ваш шлюз.

Срок входа истёк

Claude Code попытался обновить ваш сохранённый вход claude.ai, и служба OAuth отклонила сохранённый токен обновления, поэтому Claude Code удалил сохранённые учётные данные. После этого каждый запрос к модели останавливается локально с этим сообщением, не доходя до API, потому что только /login может создать новые учётные данные. До версии v2.1.206 Claude Code всё равно отправлял запрос к модели с теми учётными данными, которые оставались в окружении, и тогда каждая модель завершалась ошибкой Проблема с выбранной моделью или 401 вместо предложения войти.
В неинтерактивном режиме (-p) и в Agent SDK сообщение выглядит следующим образом, а структурированный код ошибки — authentication_failed:
О сообщении Login expired, которое заканчивается на or re-authenticate your Anthropic profile, см. раздел Anthropic profile login expired. Это не то же состояние, что OAuth-токен отозван или истёк. Те сообщения сообщают об отказе, который вернул API. Login expired Claude Code формирует сам для входа, который ему уже не удалось обновить, поэтому запрос не отправляется. Когда обновление не удаётся из-за того, что приостановлена сама учётная запись, а не из-за устаревшего входа, Claude Code вместо этого показывает Ваша учётная запись заблокирована. Сессии, аутентифицированные с помощью API-ключа, CLAUDE_CODE_OAUTH_TOKEN или стороннего провайдера, не используют сохранённый вход и никогда не видят этого сообщения. Вы можете проверить это состояние до того, как запрос завершится ошибкой: /status показывает строку Login со значением Expired — log in again, а также организацию и адрес электронной почты, сохранённые для истёкшего входа. Строка появляется только тогда, когда сохранённый вход является вашими активными учётными данными и больше не может быть обновлён. Сессии, аутентифицированные иным способом, не показывают эту строку, даже если истёкший вход остаётся сохранённым. До версии v2.1.210 /status в этом состоянии никак не показывал, что вход вообще существовал, потому что удалённые учётные данные не оставляли ему информации для отображения. Что делать:
  • Запустите /login, чтобы войти снова. Повторные попытки без входа показывают то же сообщение при каждом запросе.
  • Если вы входите со своей учётной записью claude.ai в другом окне Claude Code, см. Не выполнен вход, чтобы узнать, когда эта сессия начинает использовать этот вход самостоятельно.
  • В неинтерактивном режиме запустите claude в том же окружении, выполните /login, затем повторно запустите команду. Для автоматизации, в которой невозможен интерактивный вход, используйте аутентификацию с ANTHROPIC_API_KEY или сгенерируйте долгосрочный токен с помощью claude setup-token.
  • Если вход продолжает завершаться неудачей, см. Вход и аутентификация

Не удалось обновить вход, потому что его обновляет другой процесс Claude Code

Это сообщение не означает, что ваш вход был отклонён. Срок действия вашего сохранённого входа claude.ai истёк, и его нужно было обновить. Другой процесс Claude Code на той же машине удерживал общую блокировку обновления или завершился, оставив её, и пока эта сессия ждала, обновление не продвинулось. Claude Code останавливает запрос до отправки:
В неинтерактивном режиме (-p) и в Agent SDK сообщение выглядит следующим образом, а структурированный код ошибки — server_error:
Сессии, аутентифицированные с помощью API-ключа, CLAUDE_CODE_OAUTH_TOKEN или стороннего провайдера, не используют сохранённый вход и никогда не видят этого сообщения. Что делать:
  • Повторите попытку через минуту. Если другой процесс завершит обновление первым, эта сессия использует обновлённый вход.
  • Если сообщение продолжает появляться, закройте другие окна и процессы Claude Code, затем повторите попытку.
  • Если оно появляется, когда никакие другие процессы Claude Code не запущены, запустите /login. Повторный вход не ждёт снятия блокировки обновления.

Не удалось сохранить вход

Вы вошли через claude.ai, но Claude Code не смог сохранить вход в своё хранилище учётных данных, поэтому вход не завершился. В macOS это может произойти, когда связка ключей входа блокируется, например при переходе в сон или простое, после того как Claude Code уже прочитал или сохранил в ней учётные данные в той же сессии.
Первая форма появляется в macOS, а вторая — на всех остальных платформах. Временный сбой хранилища учётных данных, например таймаут или нечитаемое хранилище, приводит к тому же сообщению. Что делать:
  • В macOS разблокируйте связку ключей входа, затем снова запустите /login
  • На других платформах снова запустите /login
  • Если вход по-прежнему не сохраняется, см. Не выполнен вход или токен истёк, где приведена команда разблокировки связки ключей и другие шаги восстановления хранилища учётных данных

Не удалось запустить сервер обратного вызова OAuth

Когда /login, claude auth login или claude setup-token выполняют вход через браузер, Claude Code открывает прослушивающий порт на 127.0.0.1, чтобы браузер мог вернуть ему результат входа. Это сообщение означает, что Claude Code не смог открыть этот порт, и вход останавливается до появления окна браузера или URL входа:
Если ваше сообщение заканчивается на Is port 0 in use?, попытка прослушивать адрес обратной петли IPv4 127.0.0.1 полностью не удалась. Поскольку сбой происходит до того, как появляется URL входа, процесс Paste code here if prompted недоступен в качестве обходного пути. Что делать:
  • Чтобы войти сразу без локального прослушивателя: если вы используете подписку claude.ai, запустите claude setup-token на машине, где вход работает, и задайте выведенный токен как CLAUDE_CODE_OAUTH_TOKEN на этой машине. В противном случае задайте ANTHROPIC_API_KEY ключом из Claude Console. Приоритет аутентификации объясняет, как Claude Code выбирает между учётными данными.
  • Чтобы вместо этого использовать вход через браузер на этой машине, Claude Code должен иметь возможность прослушивать 127.0.0.1. Если он работает внутри песочницы, проверьте, что политика песочницы разрешает прослушивание локальных портов, затем снова запустите /login. Если такая возможность должна быть, но сбой сохраняется, запустите /feedback, чтобы отчёт включал сведения о вашем окружении.

Вход Claude не принят

Вы попытались запустить облачную сессию, и сервер отказался её создавать с ошибкой 401: он не принял вход Claude, отправленный этой машиной, обычно потому, что вход истёк или был отозван. Первая часть строки — это собственная причина сервера, если он её сообщает. В противном случае строка выглядит так:
Что делать:
  • Запустите /login, завершите вход, затем снова запустите сессию

Для артефактов нужен вход claude.ai

Claude Code отказался публиковать или читать артефакт, потому что у сессии нет входа claude.ai, который можно использовать для артефактов. Каждая форма сообщения начинается с одних и тех же слов, за которыми следует способ устранения, зависящий от того, как аутентифицируется ваша сессия. При отсутствии конкурирующих учётных данных оно выглядит так:
Что делать:
  • Запустите /login и выберите Claude account with subscription. Вариант Anthropic Console account не предоставляет учётные данные claude.ai.
  • Если сообщение называет учётные данные, которые имеют приоритет, например ANTHROPIC_API_KEY, настройку apiKeyHelper или ключ Console, сохранённый предыдущим /login, удалите их так, как указано в сообщении, затем запустите /login
  • Если сообщение говорит, что эта удалённая сессия аутентифицируется через машину, которая её запустила, войдите в claude.ai на той машине, затем переподключите сессию
  • Если сообщение говорит, что учётные данные внедрены хост-окружением сессии, вы не можете изменить их в этой сессии; запустите сессию, в которой выполнен вход в claude.ai
  • Другие требования к артефактам, такие как план, провайдер модели и политика организации, см. в разделе Доступность

Политика администратора требует входа через Cloud gateway

Управляемые настройки администратора на этой машине задают для forceLoginMethod значение "gateway" или задают forceLoginGatewayUrl. Если вы не выбираете облачного провайдера через переменную, например CLAUDE_CODE_USE_BEDROCK, Claude Code в этом случае принимает только вход через шлюз приложений Claude. Вы видите одно из двух сообщений:
Запросы к модели завершаются этим сообщением, когда у сессии нет входа через шлюз, например потому что вы не запускали /login с тех пор, как политика поступила на машину. Если на машине также есть учётные данные, выданные Anthropic, а управляемые настройки задают forceLoginMethod или forceLoginOrgUUID, Claude Code вместо этого завершает работу при запуске. Такими учётными данными может быть переменная ANTHROPIC_API_KEY или ANTHROPIC_AUTH_TOKEN, настройка apiKeyHelper или API-ключ, сохранённый при предыдущем входе в Claude Console. Сообщение при запуске называет учётные данные, с которыми настроена сессия, место, где они заданы, и шаг, который их удаляет. Например, если в вашей оболочке задана переменная ANTHROPIC_API_KEY, оно выглядит так:
Что делать:
  • Для Not signed in to the Cloud gateway запустите /login и завершите вход на экране Cloud gateway
  • Для сообщения при запуске удалите учётные данные, следуя шагам в конце сообщения
  • Если вы считаете, что машина не должна требовать шлюз, попросите администратора, который ею управляет, удалить forceLoginMethod и forceLoginGatewayUrl из её управляемых настроек
До версии v2.1.284 сообщение при запуске перечисляло возможные учётные данные вместо того, чтобы называть настроенные. Оно начиналось с Administrator policy requires a Cloud gateway sign-in on this machine; the Anthropic-issued credential configured here (ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used. Если вы видите эту формулировку и не можете понять, какие учётные данные удалить, обновитесь до версии v2.1.284 или новее и снова запустите claude. В версии v2.1.265 из-за регрессии первое сообщение также появлялось в некоторых конфигурациях LLM-шлюзов и прокси, которые аутентифицируются с помощью API-ключа, apiKeyHelper или пользовательских заголовков, даже если на машине не было требования администратора. Обновитесь до версии v2.1.266 или новее. Менять конфигурацию не нужно. До версии v2.1.261 на машинах, где forceLoginMethod имеет значение "gateway", Claude Code использовал оставшийся сохранённый вход вместо того, чтобы завершать запросы к модели ошибкой, и сообщал о настроенных учётных данных окружения сообщением This machine's managed settings require a first-party login вместо сообщения при запуске.

Ваша учётная запись заблокирована

Учётная запись Claude, стоящая за вашим входом, приостановлена. Claude Code показывает первое сообщение, когда пытается обновить ваш сохранённый вход и узнаёт о блокировке, а второе — когда о ней сообщает вход, выполненный вами в браузере:
Повторный вход с той же учётной записью не убирает сообщение, потому что блокировка наложена на учётную запись, а не на вход. В неинтерактивном режиме (-p) и в Agent SDK структурированный код ошибки — account_on_hold. До версии v2.1.235 Claude Code сообщал о заблокированной учётной записи как Login expired · Please run /login, шаги восстановления для которого не могут снять блокировку. Что делать:
  • Откройте ссылку в сообщении, чтобы просмотреть подробности блокировки или обжаловать её
  • Если у вас есть другая учётная запись Claude или API-ключ, на которые блокировка не распространяется, вы можете продолжать работу, пока блокировка не будет снята: запустите /login с этой учётной записью или задайте ключ через ANTHROPIC_API_KEY

Срок входа профиля Anthropic истёк

Claude Code проходит аутентификацию через профиль учётных данных Anthropic, срок действия сохранённых учётных данных входа которого истёк, и в профиле нет учётных данных обновления, которые Claude Code мог бы использовать для их продления. Claude Code останавливает каждый запрос локально без повторных попыток.
Что делать:
  • Если сообщение начинается с Login expired, выполните /login, чтобы войти снова
  • Чтобы обновить профиль, записанный бесключевым входом в Console или командой ant auth login из Claude Platform CLI, выполните /login на компьютере, который предлагает бесключевой вход. Выберите учётную запись Anthropic Console, затем Sign in with your Console account. Claude Code заменит истёкшие учётные данные в этом профиле
  • Чтобы обновить профиль, созданный другим инструментом, войдите снова с помощью этого инструмента. Если вместо этого вы выберете Sign in with your Console account в /login, Claude Code оставит профиль как есть и создаст API-ключ
  • Если учётные данные профиля предоставил администратор, попросите его выдать новые
  • Запустите /status, чтобы проверить активный источник учётных данных и имя профиля
  • Чтобы перестать использовать профиль, сбросьте ANTHROPIC_PROFILE, если вы её задавали, затем пройдите аутентификацию другим способом, например через /login или ANTHROPIC_API_KEY
Начало сообщения подсказывает, как Claude Code нашёл профиль:
  • Когда Claude Code обнаружил профиль в вашем каталоге конфигурации и его режим аутентификации — user_oauth, сообщение начинается с Login expired и первым предлагает /login. Claude Code отдаёт рабочему /login приоритет над обнаруженным профилем и затем проходит аутентификацию с вашей учётной записью claude.ai. С v2.1.234 до v2.1.277 эта форма выглядела как Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile. До v2.1.234 Claude Code и в этом случае показывал форму Re-authenticate your Anthropic profile.
  • Когда вы выбрали профиль с помощью ANTHROPIC_PROFILE, сообщение начинается с Anthropic profile login expired.
Это появляется только тогда, когда активные учётные данные берутся из профиля учётных данных Anthropic: того, который вы выбираете с помощью переменной окружения ANTHROPIC_PROFILE, того, который Claude Code обнаруживает как активный профиль в вашем каталоге конфигурации Anthropic, или того, который Claude Code записал, когда вы вошли без API-ключа. Сессии, которые проходят аутентификацию с API-ключом, Bearer-токеном, например ANTHROPIC_AUTH_TOKEN, или через стороннего провайдера, никогда не видят этого сообщения.

Требование к OAuth scope

Сохранённый токен был выдан до появления scope разрешений, который нужен новой функции:
Что делать:
  • Запустите /login, чтобы получить новый токен с текущими scope. Предварительно выходить не нужно.

claude.ai отклонил токен сессии

Запрос коннектора claude.ai завершился ошибкой, потому что claude.ai отклонил токен из вашего входа в Claude Code. Отклонённый токен — это ваш вход, а не собственная авторизация коннектора в claude.ai, поэтому повторная авторизация коннектора проблему не решает. В /mcp коннектор отображается как session token rejected, а в его подробном представлении написано:
Что делать:
  • Запустите /login, чтобы войти снова
  • Переподключите коннектор из /mcp или выполните /mcp reconnect <server>. Переподключение до повторного входа оставляет коннектор в том же состоянии. Вариант Reconnect в панели /mcp сообщает your claude.ai session token was rejected; набранная вручную форма /mcp reconnect <server> сообщает об успешном переподключении, хотя токен по-прежнему отклоняется.
До версии v2.1.222 Claude Code вместо этого помечал коннектор как требующий аутентификации, что направляло вас в процесс авторизации коннектора, хотя его прохождение не устраняло это состояние.

MCP-сервер требует повторного входа

Удалённый MCP-сервер отклонил учётные данные при вызове инструмента посреди сессии, обычно потому, что вход или токен истёк, либо потому, что у токена нет разрешения, нужного инструменту. Вызов инструмента завершается ошибкой, и /mcp помечает сервер как требующий аутентификации. Для сервера, в который вы входите из Claude Code, включая коннектор claude.ai, вход истёк или был отозван:
Запустите /mcp, выберите сервер и снова войдите из его меню. Для сервера, настроенного со скриптом headersHelper, Claude Code уже повторно запустил хелпер и один раз повторил вызов, прежде чем показать это:
Убедитесь, что хелпер возвращает учётные данные, которые принимает сервер, затем переподключитесь из /mcp, что снова запустит хелпер. Для сервера со статическим заголовком Authorization в его конфигурации:
Обновите значение заголовка там, где настроен сервер, затем переподключитесь из /mcp. До версии v2.1.273 во всех случаях — истёкшего входа, headersHelper и заголовка Authorization — показывалось MCP server "<name>" requires re-authorization (token expired). Сервер также может отклонить вызов инструмента с HTTP 403 insufficient_scope, чтобы попросить вас авторизовать scope, иногда такой, который уже указан в вашем токене. Сообщение называет этот scope:
Запустите /mcp, выберите сервер и снова пройдите аутентификацию из его меню. Если в конфигурации сервера не задано ни oauth.scopes, ни authServerMetadataUrl, Claude Code запрашивает scope, названный сервером. Если задана любая из этих настроек, Claude Code вместо этого запрашивает scope из неё. Если вы закрепили oauth.scopes, добавьте недостающий scope в этот список, прежде чем снова проходить аутентификацию. До версии v2.1.274 в этом случае показывалось сообщение needs you to sign in again, а до версии v2.1.273 — requires re-authorization (token expired), как и в остальных случаях.

URL MCP-сервера отсутствует или недействителен

Claude Code отказался начинать вход OAuth для удалённого MCP-сервера, потому что настроенный для сервера url не распознаётся как URL. Если у Claude Code нет более конкретной проблемы конфигурации, о которой нужно сообщить для этого сервера, запуск claude mcp login <name> в оболочке выводит отказ так:
Что делать:
  • Задайте для url записи реальный эндпоинт сервера там, где настроен сервер, или задайте переменную окружения, названную в её ссылке ${VAR}, затем снова выполните вход.

Несоответствие издателя в ответе авторизации

Во время входа MCP OAuth сервер авторизации перенаправил обратно в Claude Code с параметром iss, который не называет издателя, ожидаемого Claude Code по метаданным OAuth сервера. Неверный издатель на этом шаге — признак атаки подмены сервера авторизации (mix-up), поэтому Claude Code прерывает вход, а не обменивает код авторизации. Claude Code показывает ошибку в меню сервера /mcp после входа в браузере:
expected — это издатель из метаданных OAuth сервера, а received — значение iss, переданное в перенаправлении. Вход, при котором перенаправление не содержит параметра iss, проходит проверку, если только метаданные сервера не задают authorization_response_iss_parameter_supported, — в этом случае Claude Code прерывает вход. Что делать:
  • Повторите вход из /mcp
  • Если ошибка повторяется, сообщите о ней оператору сервера. Исправление выполняется на стороне сервера: сервер авторизации должен возвращать в параметре iss того же издателя, которого он объявляет в своих метаданных
  • Чтобы подключиться, пока сервер исправляют, запустите Claude Code с MCP_SDK_GENERATION=v1, среда выполнения которого не выполняет эту проверку. Это снимает защиту от атак подмены, поэтому предпочтительнее исправление на стороне сервера
До версии v2.1.232 Claude Code использовал среду выполнения v2 только при постепенном развёртывании или когда вы задавали MCP_SDK_GENERATION=v2.

Отказ отправлять учётные данные на эндпоинт токенов без https

В среде выполнения v2 Claude Code отправляет запрос токена MCP OAuth только на эндпоинт токенов, обслуживаемый по HTTPS или по адресу localhost, 127.0.0.1 или ::1. Это сообщение означает, что эндпоинт токенов сервера не удовлетворяет ни одному из этих условий, поэтому Claude Code остановился до отправки запроса. Это происходит после входа в браузере, поэтому сначала шаг в браузере завершается успешно, а затем снова — каждый раз, когда Claude Code обновляет токен сервера. В полной форме сообщение исходит от MCP SDK и приводит отклонённый эндпоинт токенов. В отладочном логе оно следует за Error during auth completion: для входа или Token refresh failed: для обновления. В оболочке claude mcp login <name> выводит его после Couldn't complete authentication for "<name>":, а в сессии /mcp показывает его в меню сервера:
Claude Code считает URL сервера, содержащий строку запроса или длинный сегмент пути, похожий на случайный, потенциально секретным. Для такого сервера он скрывает ошибки входа, которые выдаёт MCP SDK, прежде чем показывать или логировать их. Тогда эта ошибка выглядит как короткое имя, которое может меняться между выпусками, например io, за которым следуют from the MCP SDK for и скрытый URL сервера. Другие ошибки MCP SDK принимают там тот же вид. Скрытое сообщение может быть этой ошибкой только в том случае, если эндпоинт токенов сервера — обычный http:// по адресу, отличному от localhost, 127.0.0.1 или ::1. Что делать:
  • Обслуживайте этот эндпоинт токенов по HTTPS, например разместив сервер за обратным прокси или туннелем, который завершает TLS, и настроив сервер объявлять адрес https://
  • Чтобы подключиться без изменения сервера, запустите Claude Code с MCP_SDK_GENERATION=v1, среда выполнения которого не применяет это правило и отправляет запрос токена по обычному HTTP. Этот выбор действует до выхода из программы и применяется ко всем серверам. Среда выполнения v1 также пропускает проверку издателя, поэтому предпочтительнее обслуживать эндпоинт по HTTPS

Учётные данные AWS истекли или недействительны

Ваш токен сессии AWS истёк или был отклонён. Это сообщение появляется при ответе 401 от Claude Platform on AWS или эндпоинта Mantle — именно так эти провайдеры сообщают об истёкшем токене безопасности. Подсказка о действии в середине зависит от вашей настройки. Неизменная часть — начальное AWS credentials expired or invalid:
До версии v2.1.273 это сообщение появлялось только при настроенном awsAuthRefresh. Что делать:
  • Если в подсказке сказано, что учётными данными управляет это окружение, учётные данные принадлежат приложению, которое запустило Claude Code, и остальные шаги здесь неприменимы: повторите попытку или обратитесь к администратору
  • Если задан awsAuthRefresh, выполните команду, указанную в сообщении, например aws sso login --profile myprofile, в другом терминале и завершите вход в браузере, затем повторите попытку. В противном случае обновите используемые учётные данные AWS самостоятельно: вход SSO, ключи доступа, API-ключ или токен прокси
  • Если awsAuthRefresh задан в интерактивной сессии, вы можете вместо этого запустить /login, выбрать 3rd-party platform, а затем выбрать Claude Platform on AWS · refresh credentials в разделе Using 3rd-party platforms, чтобы выполнить ту же команду без перезапуска Claude Code. См. Настройка учётных данных AWS
  • Если ошибка повторяется после успешного выполнения команды обновления, убедитесь, что идентификатор действителен вне Claude Code, выполнив aws sts get-caller-identity в той же оболочке и профиле

Сбой аутентификации AWS

Ваш провайдер AWS вернул 403 или Amazon Bedrock вернул 401. Amazon Bedrock сообщает об истёкшем токене безопасности как о 403, но 403 также используется для сообщения об отказе в авторизации, например AccessDeniedException из-за отсутствующего разрешения IAM. Claude Code не может отличить эти две причины. Ответ 401 от Amazon Bedrock также попадает сюда, а не в раздел Учётные данные AWS истекли или недействительны, потому что Amazon Bedrock не сообщает об истёкшем токене как о 401. Ответ 401 от этого эндпоинта обычно исходит от чего-то другого на пути запроса, например от корпоративного прокси. Обновление учётных данных устраняет истёкший токен, но не может устранить другие причины, поэтому сообщение предлагает оба варианта:
Подсказка о действии в середине зависит от вашей настройки. Неизменная часть — начальное AWS authentication failed. Если 403 — это ответ Amazon Bedrock о том, что у вас нет доступа к модели с указанным идентификатором модели, подсказка вместо этого предлагает включить модель для вашей учётной записи и региона в консоли Amazon Bedrock. До версии v2.1.273 это сообщение появлялось только при настроенном awsAuthRefresh. Что делать:
  • Если в подсказке сказано, что учётными данными управляет это окружение, учётные данные принадлежат приложению, которое запустило Claude Code, и остальные шаги здесь неприменимы: повторите попытку или обратитесь к администратору
  • Обновите учётные данные AWS на случай, если причина в истёкших учётных данных: выполните команду awsAuthRefresh, указанную в сообщении, если она задана, или самостоятельно обновите вход SSO, ключи доступа, API-ключ или токен прокси
  • Если ваши учётные данные актуальны, убедитесь, что разрешения IAM из раздела Конфигурация IAM назначены используемому вами идентификатору и что выбранная модель включена для вашей учётной записи и региона
  • Выполните aws sts get-caller-identity, чтобы проверить, какой идентификатор используют ваши запросы

Учётные данные Google Cloud истекли или недействительны

Ваши учётные данные Google Cloud для Google Cloud’s Agent Platform истекли или были отклонены: запрос вернул 401 — именно так Agent Platform сообщает об истечении учётных данных. Подсказка о действии в середине зависит от вашей настройки. Неизменная часть — начальное Google Cloud credentials expired or invalid:
Что делать:
  • Если в подсказке сказано, что учётными данными управляет это окружение, учётные данные принадлежат приложению, которое запустило Claude Code, и остальные шаги здесь неприменимы: повторите попытку или обратитесь к администратору
  • Если вы проходите аутентификацию с учётными данными приложения по умолчанию, выполните команду gcpAuthRefresh, указанную в сообщении, или gcloud auth application-default login и завершите вход, затем повторите попытку
  • Если вы работаете через LLM-шлюз с заданной CLAUDE_CODE_SKIP_VERTEX_AUTH, обновите токен шлюза в ANTHROPIC_AUTH_TOKEN или ANTHROPIC_CUSTOM_HEADERS, затем повторите попытку
  • Если вы проходите аутентификацию с файлом ключа сервисного аккаунта, убедитесь, что GOOGLE_APPLICATION_CREDENTIALS указывает на действительный ключ. См. Настройка учётных данных GCP
  • Если ошибка повторяется после обновления, убедитесь, что идентификатор работает вне Claude Code, выполнив gcloud auth application-default print-access-token в той же оболочке
До версии v2.1.273 ответ 401 от Agent Platform вместо этого показывал общее сообщение Please run /login или Failed to authenticate, которое не может обновить учётные данные Google Cloud.

Google Cloud authentication failed

Google Cloud’s Agent Platform вернул ошибку 403, которую он использует для отказов в авторизации, а не для истёкших учётных данных. Обычно у удостоверения, с которым вы проходите аутентификацию, отсутствует разрешение IAM, или модель не включена для вашего проекта. Подсказка о действии в середине зависит от вашей конфигурации. Неизменной остаётся начальная часть Google Cloud authentication failed:
Что делать:
  • Если в подсказке сказано, что учётные данные управляются этой средой, учётными данными владеет приложение, запустившее Claude Code, и остальные шаги здесь неприменимы: повторите попытку или обратитесь к администратору
  • Убедитесь, что роли из раздела Конфигурация IAM предоставлены удостоверению, с которым вы проходите аутентификацию
  • Убедитесь, что модель включена для вашего проекта. См. Запрос доступа к модели
До версии v2.1.273 при ошибке 403 от Agent Platform вместо этого отображалось общее сообщение Please run /login или Failed to authenticate, хотя это не позволяет обновить учётные данные Google Cloud.

Microsoft Foundry authentication failed

Microsoft Foundry вернул ошибку 401 или 403: учётные данные Azure в запросе были отклонены, или у стоящего за ними удостоверения нет доступа к ресурсу Foundry. /login не может выпустить учётные данные Azure. Подсказка о действии в середине зависит от вашей конфигурации. Неизменной остаётся начальная часть Microsoft Foundry authentication failed:
Что делать:
  • Если в подсказке сказано, что учётные данные управляются этой средой, учётными данными владеет приложение, запустившее Claude Code, и остальные шаги здесь неприменимы: повторите попытку или обратитесь к администратору
  • Обновите учётные данные, настроенные в разделе Настройка учётных данных Azure: смените ANTHROPIC_FOUNDRY_API_KEY, выпустите новый ANTHROPIC_FOUNDRY_AUTH_TOKEN или выполните az login, чтобы цепочка учётных данных Microsoft Entra по умолчанию снова смогла выполнить вход
  • Если учётные данные актуальны, убедитесь, что у удостоверения есть доступ к ресурсу Foundry. См. Конфигурация Azure RBAC
До версии v2.1.273 при ошибке 401 или 403 от Microsoft Foundry вместо этого отображалось общее сообщение Please run /login или Failed to authenticate, хотя это не позволяет обновить учётные данные Azure.

Could not load AWS or Google Cloud credentials

Claude Code не удалось получить пригодные учётные данные из цепочки поставщиков учётных данных AWS или из учётных данных приложения Google по умолчанию на машине, где он работает, поэтому ни один запрос не дошёл до вашего облачного провайдера. Подробности после · указывают конкретную причину, например истёкшую SSO-сессию, отсутствующие учётные данные приложения по умолчанию, о которых сообщается как Could not load the default credentials, или отозванный вход, о котором сообщается как invalid_grant:
В неинтерактивном режиме с -p и в Agent SDK структурированный код ошибки — cloud_credential_error. До версии v2.1.267 сообщение показывало только текст подробностей после API Error:, а структурированным кодом был server_error или unknown. Что делать:
  • Выполните команду входа вашего провайдера, например aws sso login --profile myprofile или gcloud auth application-default login, затем повторите попытку. В разделе Учётные данные Bedrock, Agent Platform или Foundry не загружаются показано, как проверить учётные данные вне Claude Code
  • Если в подробностях указано AWS default-chain credential resolve timed out, цепочка зависла, а не завершилась ошибкой, поэтому вместо этого следуйте инструкциям из раздела AWS default-chain credential resolve timed out

AWS default-chain credential resolve timed out

Цепочка поставщиков учётных данных AWS по умолчанию не предоставила учётные данные в течение 60 секунд, поэтому Claude Code остановил их получение и завершил запрос с ошибкой. Этот таймаут — одна из причин ошибки Could not load AWS or Google Cloud credentials. Сбой происходит при локальном получении учётных данных: запрос так и не дошёл до Amazon Bedrock, Claude Platform on AWS или эндпоинта Mantle. Прежде чем эта ошибка появится, Claude Code очищает свой кэш учётных данных и повторяет попытку, поэтому к моменту, когда вы её видите, цепочка зависла уже на нескольких попытках.
Распространённые причины — команда credential_process в вашем профиле AWS, которая ожидает ввода, который не может получить, а также контейнер или VM, служба метаданных экземпляра (IMDS) которых так и не отвечает на проверку цепочки. До версии v2.1.267 сообщение выглядело как API Error: AWS default-chain credential resolve timed out. До версии v2.1.207 зависшая цепочка оставляла запрос в бесконечном ожидании вместо завершения с ошибкой. Что делать:
  • Выполните aws sts get-caller-identity в той же оболочке с тем же AWS_PROFILE. Если команда тоже зависает, исправьте профиль; распространённая причина — команда credential_process, запрашивающая интерактивный ввод.
  • Выполните вход до запуска Claude Code, например aws sso login --profile myprofile
  • Если ваша цепочка выполняет интерактивный вход, которому действительно требуется больше 60 секунд, например SSO с MFA через обёртку вроде aws-vault, увеличьте лимит в миллисекундах с помощью CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS

Bedrock setup verification timed out waiting for AWS

Обращение к AWS во время проверки учётных данных в мастере настройки Bedrock, например поиск учётных данных или проверка удостоверения, не завершилось в пределах 60-секундного лимита. Мастер прекращает ожидание, и шаг проверки завершается с ошибкой:
Число отражает ваш лимит: 60 секунд по умолчанию или значение, заданное в CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS. Распространённые причины — сеть или прокси, задерживающие запросы к AWS, включая обновление токена SSO, а также вспомогательная программа учётных данных, всё ещё ожидающая ввода, который вы не видите. Увеличивайте лимит, только если вспомогательной программе действительно требуется больше времени. Отдельный зависший запрос к AWS также может завершиться ошибкой по собственному таймауту запроса, и тогда на том же шаге отображается более короткое сообщение:
Если такие же таймауты возникают на шаге закрепления модели, мастер помечает модель как unreachable вместо того, чтобы показывать любое из этих сообщений. Что делать:
  • Выполните aws sts get-caller-identity в той же оболочке. Если команда тоже зависает, проблема находится вне Claude Code — в вашей сети, прокси или вспомогательной программе учётных данных в профиле AWS; сначала устраните её.
  • Выполните любой интерактивный вход до открытия мастера, например aws sso login --profile myprofile
  • Если вспомогательной программе учётных данных в вашем профиле AWS действительно требуется больше 60 секунд, чтобы запросить у вас ввод, увеличьте лимит в миллисекундах с помощью CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS

Cloud gateway session expired

Вы вошли через шлюз приложений Claude, и сессия шлюза, сохранённая на этой машине, истекла и не могла быть продлена, либо шлюз больше её не принимает, например после замены секрета JWT шлюза. Если вы видите эту строку при интерактивном запуске claude, сессия открылась без входа в шлюз:
Та же строка может появиться посреди сессии, когда учётные данные шлюза истекают и Claude Code не может их продлить. При неинтерактивном запуске, в фоновой или другой автономной сессии, а также в подкоманде claude, отличной от claude auth, Claude Code вместо этого завершает работу с таким сообщением, когда шлюз больше не принимает сессию:
Что делать:
  • Выполните /login в сессии и завершите вход в браузере
  • Для неинтерактивного запуска запустите claude в той же среде, выполните /login, затем повторно выполните свою команду

Sign-in timed out while waiting for you to continue

Во время входа через шлюз приложений Claude шлюз назвал учётную запись, выполнившую вход, и Claude Code попросил вас подтвердить её перед сохранением учётных данных. Вы оставили подтверждение открытым дольше срока действия самого входа, а шлюз не выдал refresh-токен, которым его можно было бы продлить, поэтому Claude Code ничего не сохранил, когда вы продолжили:
Что делать:
  • Снова выполните /login и подтвердите учётную запись до истечения срока действия входа

Gateway refused the request

Вы вошли через шлюз приложений Claude, и запрос вернул ошибку 403: шлюз или стоящий за ним вышестоящий сервис отклонил его. Повторный вход не меняет отказ, поэтому сообщение направляет вас к администратору шлюза:
Что делать: До версии v2.1.273 при ошибке 403 в сессии шлюза вместо этого отображалось общее сообщение Please run /login или Failed to authenticate, а повторный вход не снимал отказ.

Ошибки сети и подключения

Большинство этих ошибок означают, что сетевой запрос из Claude Code не достиг пункта назначения, или что-то между Claude Code и API изменило ответ на обратном пути; если у ошибки есть и локальная причина, например сбой записи архива, это указано в её описании. Обычно они возникают в вашей локальной сети, прокси или брандмауэре либо в сетевой политике облачной среды.

Unable to connect to API

TCP-соединение с API не удалось установить или оно не завершилось. Для распространённых кодов ошибок подключения сообщение указывает тип сбоя и сохраняет код в скобках:
Код, который Claude Code не распознаёт, отображается как Unable to connect to API с кодом в скобках. Некоторые из этих сообщений могут показывать разные коды: например, Connection refused может показать ConnectionRefused или ECONNREFUSED, а Can't reach the API server — ENOTFOUND или FailedToOpenSocket. До версии v2.1.227 каждое из этих сообщений с кодом выглядело как Unable to connect to API с кодом, например Unable to connect to API (ECONNREFUSED). Распространённые причины: отсутствие доступа в интернет, VPN, который блокирует api.anthropic.com, или обязательный корпоративный прокси, который не настроен. Что делать:
  • Убедитесь, что хост API доступен из той же оболочки, выполнив curl -I https://api.anthropic.com. В Windows PowerShell используйте curl.exe -I https://api.anthropic.com, чтобы не использовался встроенный псевдоним Invoke-WebRequest.
  • Если вы находитесь за корпоративным прокси, задайте HTTPS_PROXY перед запуском Claude Code и см. Настройка сети
  • Если вы направляете трафик через LLM-шлюз или ретранслятор, задайте ANTHROPIC_BASE_URL равным его адресу. Инструкции по настройке см. в разделе Подключение Claude Code к LLM-шлюзу.
  • Убедитесь, что ваш брандмауэр разрешает хосты, перечисленные в разделе Требования к сетевому доступу
  • Для периодических сбоев повторные попытки выполняются автоматически; постоянные сбои указывают на локальную проблему с сетью
Если curl выполняется успешно, но Claude Code по-прежнему не работает, причина обычно находится между средой выполнения и сетью, а не в самой сети:
  • Проверьте, задана ли ANTHROPIC_BASE_URL, выполнив echo $ANTHROPIC_BASE_URL или echo $env:ANTHROPIC_BASE_URL в PowerShell, и поищите её в блоке env ваших файлов настроек. Когда она задана, Claude Code отправляет запросы к модели на этот адрес вместо api.anthropic.com, поэтому оставшееся значение, указывающее на локальный прокси или шлюз, который больше не работает, приводит к Connection refused, даже если curl достигает API. Удалите её из профиля оболочки или из настроек и запустите Claude Code в новом терминале.
  • В Linux и WSL проверьте /etc/resolv.conf на наличие недоступного сервера имён. WSL, в частности, может унаследовать неработающий резолвер от хоста.
  • В macOS VPN-клиент, который был отключён или удалён, может оставить после себя туннельный интерфейс или правило маршрутизации. Проверьте ifconfig на наличие устаревших интерфейсов utun и удалите сетевое расширение VPN в System Settings.
  • Docker Desktop и аналогичные среды выполнения контейнеров могут перехватывать исходящий трафик. Закройте их и повторите попытку, чтобы исключить эту причину.

Unable to connect to Anthropic services

Во время первоначальной настройки Claude Code проверяет доступность api.anthropic.com и platform.claude.com перед отображением шага входа. Если любая из проверок не проходит, Claude Code выводит причину и завершает работу.
Claude Code выполняет проверку через ту же конфигурацию прокси, что и запросы к API, и отводит каждой проверке 10 секунд. Если неудачная проверка шла через прокси, сообщение называет переменную окружения, которая его задала, например HTTPS_PROXY. До версии v2.1.222 проверка использовала другой транспорт прокси без таймаута: за прокси с URL со схемой https:// она могла бесконечно зависать на Checking connectivity..., а затем завершаться ошибкой, хотя запросы к API через тот же прокси проходили успешно. Claude Code пропускает эту проверку, когда файл управляемых настроек, политика MDM или policy helper задаёт для forceLoginMethod значение "gateway" или задаёт forceLoginGatewayUrl без forceLoginMethod. При любой из этих конфигураций Claude Code открывает шаг входа на экране Cloud gateway вместо способа входа Anthropic. Claude Code также пропускает проверку, когда источник управляемых настроек на машине существует, но не может быть прочитан, поскольку этот источник может содержать конфигурацию шлюза. До версии v2.1.247 Claude Code выполнял проверку и при такой конфигурации и завершал работу с этой ошибкой, когда эндпоинты Anthropic были недоступны. Claude Code также пропускает проверку на машине без управляемых настроек, когда ваш собственный ~/.claude/settings.json указывает шлюз с помощью forceLoginMethod и forceLoginGatewayUrl. До версии v2.1.295 Claude Code в этом случае выполнял проверку. Что делать:
  • Если сообщение называет переменную прокси, проверьте, что её значение указывает на нужный прокси, и попросите сетевую команду разрешить HTTPS-соединения через него к хосту из сообщения. См. Настройка сети.
  • Выполните проверки из раздела Unable to connect to API. Тест с curl и рекомендации по брандмауэру оттуда применимы и к этой проверке.
  • Если ваша сеть открыта, а сбой сохраняется, Claude Code может быть недоступен в вашей стране

Socket is closed

Socket is closed означает, что соединение, по которому шёл потоковый ответ, было закрыто, пока ответ ещё поступал. Наиболее распространённая причина — корпоративный прокси в Windows, разрывающий установленный туннель посреди ответа. В зависимости от того, насколько продвинулся ответ, Claude Code повторяет запрос, сохраняет то, что успел сгенерировать Claude, или завершает ход. См. Автоматические повторные попытки. До версии v2.1.214 Claude Code не повторял попытку при этом сбое, и ход останавливался с ошибкой, содержащей Socket is closed. Что делать:
  • Если вы видите эту ошибку, обновитесь до v2.1.214 или более поздней версии с помощью claude update, затем отправьте сообщение снова
  • Если после обновления ходы продолжают завершаться ошибкой за тем же прокси, выполните проверки из раздела Unable to connect to API и проверьте настройку прокси в разделе Настройка сети

API returned an empty or malformed response

Claude Code показывает эту ошибку, когда его непотоковая повторная попытка неудавшегося потокового запроса получает успешный HTTP-статус, но тело не является сообщением Claude API: обычно это HTML-страница ошибки или входа, пустое тело или JSON в другом формате. Обычный источник — прокси, шлюз или страница входа в сеть, отвечающие вместо API. Claude Code не повторяет запрос, и ход завершается этой ошибкой.
После этого вступления сообщение сообщает, что вернулось и какой запрос завершился ошибкой:
  • Фрагмент Response: с типом содержимого, видом тела, например body is an HTML page или empty body, его размером в байтах и тем, содержал ли ответ идентификатор запроса Anthropic. Когда ответ называет узнаваемый сервер, например nginx или cloudflare, или содержит заголовки промежуточных узлов, например cf-ray или via, фрагмент перечисляет и их.
  • Предложение с идентификатором неудавшегося потокового запроса и сбоем, который вызвал повторную попытку. Если до сбоя поток был открыт, оно также сообщает, сколько событий потока пришло и, если они были, как долго поток молчал на момент сбоя попытки.
До версии v2.1.234 сообщение заканчивалось после intercepting the request. До версии v2.1.271 ответ, содержавший корректное сообщение API с типом содержимого, отличным от JSON, например text/plain, также завершал ход этой ошибкой. Некоторые LLM-шлюзы используют этот тип содержимого для непотокового ответа. Что делать:
  • Прочитайте фрагмент Response:, чтобы понять, какая система ответила. HTML-тело, отсутствие идентификатора запроса Anthropic или названный сервер, например nginx или cloudflare, означают, что вместо API ответило что-то между Claude Code и API
  • Если вы направляете трафик через LLM-шлюз, проверьте маршрут прямым запросом и исправьте звено, которое возвращает ответ не от API
  • В сети со страницей входа, например в гостевом Wi-Fi, выполните вход в браузере, затем повторите попытку
  • Если не работает только непотоковый маршрут через ваш шлюз, задайте CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1, чтобы отключить этот резервный вариант, за исключением случая, когда сам потоковый эндпоинт возвращает 404: тогда Claude Code всё равно переключается на резервный вариант

Streaming response ended before any complete data was received

Потоковый ответ от вашего поставщика модели завершился, не доставив никаких пригодных данных, поэтому Claude Code повторно отправил запрос без потоковой передачи, чтобы завершить ход. Claude Code показывает это предупреждение один раз за сессию и только в интерактивных сессиях. До версии v2.1.239 Claude Code молча повторял попытку без потоковой передачи.
Claude Code отправляет каждый затронутый запрос дважды: пустую потоковую попытку и повторную попытку. Обычная причина — прокси или шлюз, который поглощает или преобразует тело потокового ответа на обратном пути. Что делать:

Bedrock streaming response has an unexpected content-type

Шлюз или прокси между Claude Code и Amazon Bedrock преобразует тело потокового ответа или его заголовок Content-Type. Amazon Bedrock передаёт потоковые ответы как application/vnd.amazon.eventstream. Вместо того чтобы декодировать тело, которое он не может прочитать, Claude Code отклоняет успешный потоковый ответ с другим типом содержимого. Claude Code не повторяет запрос.
До версии v2.1.208 та же ошибка конфигурации проявлялась как API Error: Truncated event message received после буферизации всего ответа. Что делать:
  • Настройте шлюз так, чтобы тело ответа InvokeModelWithResponseStream и его заголовок Content-Type проходили без изменений. Частая причина — промежуточный узел, который повторно выдаёт поток как server-sent events.
  • Установка CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 скрывает эту ошибку, но Claude Code не декодирует двоичное тело с переписанным заголовком, поэтому такие запросы переключаются на более медленный непотоковый путь. См. Ошибки потоковой передачи за шлюзом или прокси.

SSL certificate errors

Прокси или устройство безопасности в вашей сети перехватывает TLS-трафик с помощью собственного сертификата, которому Claude Code не доверяет.
До версии v2.1.273 оба сообщения заканчивались на Check your proxy or corporate SSL certificates, без кода OpenSSL и подсказки про NODE_EXTRA_CA_CERTS. Начиная с версии v2.1.199, при сбое проверки сертификата повторные попытки не выполняются, поэтому эта ошибка появляется при первой попытке, а не после исчерпания всего лимита повторных попыток. Более ранние версии тратили несколько минут на повторные попытки, прежде чем показать её. При временных проблемах TLS, например таймауте рукопожатия, повторные попытки по-прежнему выполняются. Во время /login и проверки подключения при запуске тот же сбой приводит к другому сообщению:
На Amazon Bedrock запросы, которые Claude Code сам отправляет в AWS, например вызовы STS и SSO для получения учётных данных роли, обнаружение моделей и проверки мастера настройки, зависят от той же конфигурации сертификатов. См. Ошибки сертификатов за прокси с TLS-инспекцией. Что делать:
  • Экспортируйте пакет CA вашей организации и укажите его Claude Code с помощью NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem
  • Полные инструкции по настройке см. в разделе Настройка сети
  • Не устанавливайте NODE_TLS_REJECT_UNAUTHORIZED=0 — это полностью отключает проверку сертификатов

Host not allowed in a cloud session

Исходящий HTTP-запрос из облачной сессии или routine был заблокирован сетевой политикой среды.
Вы также можете увидеть TLS-сертификат, который не совпадает с настоящим сертификатом пункта назначения. Облачные сессии направляют исходящий трафик через прокси, который применяет сетевую политику, поэтому несовпадающий сертификат означает, что соединение завершил прокси, а не пункт назначения. Это не проблема сети на стороне клиента. Облачные сессии и routines работают внутри изолированной виртуальной машины, исходящий трафик которой через сеть сессии фильтруется по списку разрешённых доменов облачной среды; операции GitHub и трафик MCP-коннекторов используют отдельные каналы, поэтому они могут продолжать работать, пока другие хосты заблокированы. Среда Default использует доступ Trusted, который разрешает список разрешённых доменов по умолчанию: реестры пакетов, API облачных провайдеров, реестры контейнеров и распространённые домены для разработки — и блокирует другие домены на этом пути. Что делать: Эти шаги изменяют одну из ваших собственных сред. Общая среда организации открывается в селекторе только для чтения, поэтому попросите Owner изменить её сетевой доступ на странице Cloud environments в настройках администратора. Уровни доступа и список разрешённых доменов по умолчанию описаны в разделе Сетевой доступ. Эта политика не влияет на локальные сессии CLI.

The proxy refused the connection

Вы видите это сообщение, когда Claude читает артефакт через прокси, заданный в HTTPS_PROXY или связанной переменной прокси. Содержимое артефакта поступает с *.frame.claudeusercontent.com, поэтому Claude Code сначала отправляет прокси запрос CONNECT с просьбой открыть туннель к этому хосту. Когда прокси отказывает, до хоста ничего не доходит, и сообщение содержит HTTP-статус прокси:
Статус — это ответ прокси на CONNECT. Хост не отвечал вовсе, поэтому каждый статус указывает на своё исправление:
  • HTTP 407: прокси требует учётные данные, которые не получил. Укажите их в URL прокси, как показано в разделе Базовая аутентификация.
  • HTTP 403: прокси отказывается создавать туннель к *.frame.claudeusercontent.com. Попросите того, кто управляет прокси, разрешить этот хост, указанный в разделе Требования к сетевому доступу.
  • Любой другой статус, например HTTP 502: прокси не открыл туннель по собственной причине, например не смог достичь хоста. Найдите этот статус в логах прокси.
  • unreadable reply вместо статуса: то, что находится по адресу прокси, не ответило строкой HTTP-статуса. Проверьте, что по этому адресу находится HTTP-прокси.
Что делать:
  • Проверьте адрес и учётные данные в переменной прокси, как описано в разделе Конфигурация прокси, затем выполните curl -x http://proxy.example.com:8080 -I https://api.anthropic.com в оболочке, из которой вы запускаете Claude Code, подставив URL своего прокси. В Windows PowerShell используйте curl.exe. Если эта проверка завершается так же, сначала исправьте настройку прокси. Если она проходит успешно, отказ касается только хоста артефактов.
  • Если ваша сеть позволяет Claude Code обращаться к хосту артефактов напрямую, добавьте .frame.claudeusercontent.com в NO_PROXY. Не расширяйте эту запись: более широкая запись .claudeusercontent.com также направляет в обход прокси bridge.claudeusercontent.com, который организациям со списками разрешённых IP-адресов нужно оставлять за прокси.
До версии v2.1.238 Claude Code сообщал об отказе в туннеле как об общей сетевой ошибке.

The cloud environments service returned an empty or unexpected response

Claude Code запрашивает список ваших облачных сред в нескольких случаях, например когда вы создаёте облачную сессию из CLI или выполняете /remote-env. Когда он не может прочитать ответ сервера, он показывает одно из этих сообщений:
Сервер принял запрос, но вернул тело, которое не является списком сред: пустое, не JSON или JSON без списка. Обычно это сопровождает сбой на стороне сервиса и проходит само. В зависимости от интерфейса, запросившего список, Claude Code может добавить префикс, например couldn't list environments: в диалоговом окне /remote-env. Что делать:
  • Повторите действие. Claude Code каждый раз запрашивает список заново
  • Если сообщение продолжает появляться, проверьте status.claude.com на наличие активных инцидентов
До версии v2.1.236 Claude Code вместо этих сообщений показывал необработанную ошибку JavaScript TypeError.

Failed to fetch session from Sessions API

Это сообщение означает, что Claude Code нашёл облачную сессию, которую вы попросили перенести в терминал, но не смог прочитать историю её диалога с серверов Anthropic, поэтому не открыл её:
Вы видите его после claude --teleport, /teleport или выбора сессии в списке /tasks. claude --teleport <session-id> выводит его и завершает работу с кодом 1. Что делать: До версии v2.1.296 Claude Code не повторял неудавшееся чтение, и после такого сбоя мог открыть сессию с пустым диалогом и сообщить об успехе вместо вывода этого сообщения.

Couldn’t reconnect to your Remote Control session

При возобновлении с помощью claude --resume или claude --continue Claude Code повторно подключается к сессии Remote Control, записанной в этом диалоге. Это сообщение означает, что повторное подключение не удалось по причине, которая может быть временной, например из-за сетевого сбоя или ошибки сервера, поэтому Claude Code не может подтвердить, существует ли ещё удалённая сессия. Ваша локальная сессия продолжает работать без Remote Control. Что делать:
  • Выполните /remote-control, чтобы повторить попытку подключения
  • Запустите новую сессию с помощью claude --remote-control, чтобы создать новую сессию Remote Control
  • Другие сообщения при запуске Remote Control описаны в разделе Устранение неполадок Remote Control
Если сервер вместо этого сообщает, что предыдущей сессии больше нет, вы не увидите это сообщение. Claude Code запустит вместо неё новую сессию или покажет Previous session is unavailable — run /remote-control to start a new one.

Sessions ended while this machine was offline

Claude Code показывает это сообщение в терминале, где запущен claude remote-control, после того как ваша машина находилась офлайн настолько долго, что сервер удалил среду Remote Control, которую обслуживала ваша машина. Сессии в этой среде завершились, и возобновить их нельзя. Число в сообщении — количество завершившихся сессий.
Что делать:
  • Если под этим сообщением Claude Code перечисляет сохранённые worktree, заберите из них незафиксированную работу
  • Выполните claude remote-control, чтобы запустить новую среду

Couldn’t share the transcript

После того как вы соглашаетесь поделиться транскриптом сессии в окне опроса, например опроса о качестве сессии, Claude Code загружает его в Anthropic либо вместо этого сохраняет локальный архив — при использовании сторонних поставщиков, в сессиях Claude apps gateway и когда учётные данные Anthropic недоступны. Это сообщение означает, что отправка не завершилась.
Загрузка должна укладываться в лимит 8 MiB. В длинной сессии Claude Code постепенно исключает части отправляемых данных — сначала настройки модели последнего запроса, затем структурированный диалог и транскрипты субагентов — и показывает это сообщение, когда ни одну сокращённую версию отправить не удаётся или загрузку прерывает сетевая ошибка либо ошибка сервера. Когда Claude Code вместо загрузки сохраняет локальный архив, сообщение означает, что записать архив не удалось. Что делать:
  • Выполните /feedback, чтобы отправить транскрипт с описанием того, что произошло. Если /feedback недоступна в вашей среде, см. Сообщить об ошибке
  • Если другие запросы тоже завершаются ошибкой, проверьте сетевое подключение и см. Unable to connect to API

Couldn’t send feedback

Вы отправили отчёт из диалогового окна /feedback, /bug или /share, и загрузка в Anthropic не удалась. Диалоговое окно сохраняет ваш текст, чтобы вы могли повторить попытку.
Текст после префикса указывает, что именно не удалось:
  • : not signed in. Run /login, then retry.: диалоговое окно выполняет загрузку, только если при его открытии Claude Code нашёл учётные данные Anthropic, а к моменту отправки пригодных учётных данных не осталось. Например, вы тем временем вышли из системы на этой машине или ваш вход больше не удалось обновить.
  • Текст в скобках: (server returned <status>) — это код ответа сервиса; (request timed out) и (couldn't reach the service) — сетевые сбои. Когда Claude Code не может назвать причину, текста в скобках нет.
В очереди черновиков отзывов тот же сбой вместо этого заканчивается на The draft is still queued. Try again later., и черновик остаётся в очереди для следующей попытки. Что делать:
  • При формулировке о том, что вход не выполнен, выполните /login и отправьте снова
  • В остальных случаях отправьте снова; если другие запросы тоже завершаются ошибкой, проверьте сетевое подключение и см. Unable to connect to API
  • Если сбой повторяется, создайте отчёт на github.com/anthropics/claude-code/issues, как указано в сообщении
До версии v2.1.281 любая отправка завершалась этим сообщением, если, пока диалоговое окно было открыто, поступила команда Stop от Remote Control или срочное сообщение из другой сессии. В этих версиях закройте диалоговое окно, откройте его снова и повторите отправку.

Ошибки запроса

Эти ошибки связаны с содержимым вашего запроса. Большинство из них возвращает API после отклонения запроса; некоторые формируются локально в Claude Code ещё до отправки запроса.

Prompt is too long

Диалог вместе с прикреплёнными файлами превышает контекстное окно модели.
В интерактивной сессии Claude Code показывает эту ошибку так:
Строка называет только /clear, когда задана DISABLE_COMPACT. Более длинные формы ошибки, например форма со сбоем сжатия контекста ниже, сохраняют формулировку Prompt is too long ·. В выводе -p и в транскрипте текст остаётся Prompt is too long. Если вы отключили автосжатие в пользовательских настройках, строка также сообщает об этом:
Переключатель Auto-compact в /config записывает autoCompactEnabled в пользовательские настройки. Подсказка появляется только тогда, когда изменение в /config действительно вступит в силу. Например, она не появляется, если автосжатие отключено через DISABLE_AUTO_COMPACT или DISABLE_COMPACT. Она также не появляется, если область действия с более высоким приоритетом, например настройки проекта или управляемые настройки, задала autoCompactEnabled значение false. До версии 2.1.235 строка не содержала подсказку об автосжатии. Amazon Bedrock сообщает об этом состоянии как Input is too long for requested model., и Claude Code обрабатывает это так же. До версии 2.1.217 Claude Code не распознавал формулировку Bedrock, поэтому автосжатие на ней никогда не срабатывало, а /compact завершался с той же ошибкой. Claude apps gateway сообщает об этом состоянии как capability_rejected: prompt_too_long, когда вышестоящий облачный сервис отклоняет запрос в собственном формате ошибок провайдера. Claude Code обрабатывает этот токен так же, как Prompt is too long. До версии 2.1.228 Claude Code не распознавал этот токен, поэтому автосжатие на нём не срабатывало. Если на этом ходе выполнялось автоматическое сжатие контекста и оно завершилось сбоем из-за другой ошибки, например недоступности модели или сбоя аутентификации, сообщение называет эту ошибку после разделителя:
Сначала устраните названную ошибку; пока вы этого не сделаете, /compact будет завершаться с той же ошибкой. До версии 2.1.229 при неудачном автоматическом сжатии выводилось Prompt is too long без указания причины. Когда на этой ошибке запускается автоматическое сжатие контекста, оно обычно суммирует самые старые обмены и сохраняет самые новые. В крайнем случае Claude Code суммирует иначе:
  • Если не удаётся суммировать ни одного целого обмена, Claude Code сохраняет ваш последний промпт дословно и суммирует всё, что было до него.
  • Если в этом случае диалог не заканчивается вашим промптом, Claude Code вместо этого суммирует весь диалог.
Claude Code пропускает такое восстановление, если переносимое содержимое не содержит ответа модели и включает менее примерно 1000 токенов вашего собственного текста, например короткую повторную попытку, отправленную после слишком большой вставки. Выполните /clear, чтобы начать заново. До версии 2.1.269 сжатие контекста завершалось сбоем каждый раз, когда не удавалось суммировать целый обмен, поэтому сессия в таком состоянии получала эту ошибку снова на каждом ходе. В диалоге из одного обмена нет более ранних ходов для суммирования. Когда автоматическое сжатие должно было бы запуститься для такого диалога, Claude Code пропускает попытку и объясняет, чем заполнен запрос. Если API не сообщает количество токенов в своей ошибке, сообщение выглядит так:
Если API сообщает количество токенов в своей ошибке, Claude Code сравнивает его с собственной оценкой размера диалога, чтобы определить, что составляет большую часть запроса: собственное содержимое диалога или системный промпт, определения инструментов и содержимое вложений, которые Claude Code отправляет вместе с ним. Если большую часть запроса составляет собственное содержимое диалога, сообщение выглядит так:
Если большая часть запроса находится вне диалога, сообщение выглядит так:
До версии 2.1.162 Claude Code всё равно пытался выполнить сжатие контекста и при неудаче выводил просто Prompt is too long. Что делать:
  • Выполните /compact, чтобы суммировать более ранние ходы и освободить место, или /clear, чтобы начать заново. Если /compact отвечает Not enough messages to compact., диалог состоит из одного обмена и суммировать нечего, поэтому место занято этим единственным промптом и тем, что Claude Code отправляет с каждым запросом: выполните /clear и отправьте запрос заново с меньшим объёмом вставленного текста или меньшими вложениями либо сократите определения инструментов и файлы памяти, следуя шагам ниже
  • Выполните /context, чтобы увидеть разбивку того, что занимает окно: системный промпт, инструменты, файлы памяти и сообщения
  • Отключите неиспользуемые MCP-серверы с помощью /mcp disable <name>, чтобы убрать их определения инструментов из контекста
  • Сократите большие файлы памяти CLAUDE.md или перенесите инструкции в правила, привязанные к путям, которые загружаются только при необходимости
  • Автосжатие включено по умолчанию и обычно предотвращает эту ошибку. Если вы отключили его в /config или с помощью DISABLE_AUTO_COMPACT, включите его снова. Если вы оставляете его отключённым, выполняйте /compact самостоятельно до заполнения окна.
Интерактивную демонстрацию того, как заполняется контекст, см. в разделе Explore the context window.

Context exceeds the token limit

/context показывает это предупреждение в начале своего вывода, когда диалог превысил контекстное окно модели. Запросы завершаются с ошибкой Prompt is too long, пока вы не освободите место. В интерактивной сессии эта ошибка отображается как строка Context limit reached.
Если превышенный лимит — это окно сжатия контекста, например граница 200K на моделях с контекстом 1M, предупреждение звучит иначе. Окно сжатия может быть меньше контекстного окна модели, поэтому запросы сверх него всё ещё могут выполняться успешно.
Обе формы называют /clear вместо /compact, если вы задали DISABLE_COMPACT. Что делать:
  • В диалоге из нескольких ходов выполните /compact, чтобы суммировать более ранние ходы и освободить место. Чтобы начать заново, выполните /clear
  • Другие способы сократить использование см. в разделе Prompt is too long
До версии 2.1.216 /context показывал использование выше 100% без строки предупреждения, объясняющей, что это значит и как восстановиться.

Request too large

Необработанное тело запроса превысило лимит API в 32MB ещё до токенизации, обычно из-за большого вставленного содержимого, результатов инструментов или вложений. Этот лимит не связан с контекстным окном.
Если запрос шёл напрямую в Claude API и его отклонил сам API, Claude Code измеряет диалог и формулирует сообщение в зависимости от того, возможно ли восстановление. При работе через прокси, шлюз или облачного провайдера вы получаете общее сообщение. Формы с результатами измерения:
  • Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).: лимит превышен из-за изображений или документов. Claude Code повторяет попытку без них.
  • Request too large for the API's 32MB request limit: лимит превышают сами сообщения, поэтому в сообщении сказано compacting cannot make it fit, и Claude Code не повторяет попытку. В неинтерактивном режиме сообщение предлагает вместо этого сократить входные данные или начать новую сессию.
До версии 2.1.212 диалоги с большим количеством накопленных изображений на каждом ходе завершались ошибкой Request too large (max 32MB). Double press esc to go back and try with a smaller file. До версии 2.1.229 Claude Code показывал совет о вложениях при каждом отклонении, даже когда сжатие контекста не могло помочь. Что делать:
  • Если в сообщении сказано compacting cannot make it fit, дважды нажмите Esc, чтобы вернуться до хода, добавившего большое содержимое, или выполните /clear, чтобы начать заново
  • В противном случае выполните /compact, который удаляет накопленные изображения и вложения
  • Указывайте большие файлы по пути вместо вставки их содержимого, чтобы Claude мог читать их частями
  • Для изображений см. раздел Image was too large ниже

Image was too large

Вставленное или прикреплённое изображение превышает ограничения API по размеру или разрешению.
Claude Code заменяет необрабатываемое изображение текстовым заполнителем и повторяет попытку, поэтому последующие сообщения проходят успешно. В версиях до 2.1.142 вставленное изображение могло оставаться в диалоге и вызывать ту же ошибку на каждом последующем сообщении. Чтобы восстановиться в этих версиях, дважды нажмите Esc и вернитесь до хода, на котором было добавлено изображение. Что делать:
  • Уменьшите изображение перед вставкой. API принимает изображения размером до 8000 пикселей по длинной стороне для одного изображения или до 3000 пикселей, когда в контексте более 20 изображений.
  • Сделайте снимок только нужной области вместо всего экрана

Unable to resize image

Claude Code не смог уменьшить прикреплённое изображение перед отправкой в API.
Обычно Claude Code автоматически уменьшает большие изображения. Эти ошибки означают, что изображение не удалось декодировать или уменьшить до размеров в пределах лимитов API. Что делать:
  • Если сообщение просит преобразовать изображение, преобразуйте его в PNG, JPEG, GIF или WebP и прикрепите снова. Для этих форматов Claude Code может проверить размеры по заголовку файла, не декодируя изображение.
  • Если сообщение указывает на лимит разрешения или размера, уменьшите или пересожмите изображение ниже этого лимита перед прикреплением.
  • Если сообщение называет причину, например CMYK JPEG, анимированный WebP или возможно повреждённый файл, пересохраните изображение в формате, предложенном в сообщении, и прикрепите его снова.

Request rejected as unprocessable by the model

API отклонил запрос как такой, который модель не может обработать. Это собственное сообщение API.
Claude Code может удалить самые старые изображения и документы из отклонённого запроса и отправить его снова. До v2.1.290 Claude Code не удалял изображения при таком отказе, поэтому длинная сессия, накопившая сотни изображений, могла завершаться этой ошибкой на каждом ходе. Что делать:
  • Если сообщение продолжает появляться в диалоге с изображениями или документами, удалите их самостоятельно. Дважды нажмите Esc, чтобы вернуться назад за ходы, которые их добавили, или выполните /clear, чтобы начать заново.

PDF errors

Прикреплённый PDF не удалось обработать. Здесь сообщения показаны в неинтерактивной форме; в интерактивной сессии они вместо этого предлагают дважды нажать esc и попробовать снова.
Что делать:
  • Для слишком больших PDF попросите Claude прочитать диапазон страниц с помощью инструмента Read вместо прикрепления всего файла или извлеките текст с помощью инструмента вроде pdftotext и укажите выходной файл по пути
  • Для защищённых или недействительных PDF удалите пароль или повторно экспортируйте файл из исходного приложения, затем попробуйте снова
Когда Claude читает диапазон страниц PDF с помощью инструмента Read, чтение может завершиться с другим сообщением:
При чтении диапазона страниц страницы отрисовываются с помощью pdftoppm. Установите poppler-utils командой, указанной в сообщении, а на других платформах — сборку poppler, которая добавляет pdftoppm в ваш PATH. О том, какие PDF читаются по диапазону страниц, см. в разделе Read tool behavior.

Extra inputs are not permitted

Прокси или LLM-шлюз между Claude Code и API удалил заголовок запроса anthropic-beta, поэтому API отклонил поля, которые от него зависят.
Claude Code отправляет поля, доступные только в бета-версии, например context_management, вместе с заголовком anthropic-beta, который их включает. Когда шлюз пересылает тело запроса, но удаляет заголовок, API видит поля, которые не распознаёт. Что делать:

Tool input schema is invalid

Инструмент в запросе объявил input_schema, которая не проходит проверку JSON Schema в API, поэтому API отклонил весь запрос. Число после tools. — это позиция проблемного инструмента в списке инструментов запроса, а не имя, которое можно найти.
Первая форма означает, что схема не является допустимой JSON Schema draft 2020-12. Вторая означает, что имя свойства верхнего уровня не соответствует шаблону, приведённому в сообщении. Claude Code исключает MCP-инструменты, чья схема входных данных не прошла бы эту проверку, при загрузке инструментов сервера, поэтому обычно такие инструменты в запросы не попадают. В развёртывании, где получение флагов отключено, или на машине, куда флаги ещё ни разу не поступили, Claude Code записывает в лог сервера, какой инструмент будет отклонён, но всё равно отправляет его, поэтому эта ошибка всё ещё может возникнуть. Ошибка также может возникнуть для инструмента, чья схема объявляет в $schema диалект JSON Schema, отличный от draft 2020-12. Claude Code не проверяет такие схемы на соответствие метасхеме JSON Schema, хотя проверка имён свойств верхнего уровня по-прежнему применяется. До версии 2.1.216 ни одно развёртывание не выполняло проверки исключения. Что делать:
  • Если ваша версия Claude Code ниже v2.1.216, выполните claude update.
  • Удалите или отключите MCP-сервер, объявляющий недопустимую схему. Ошибка указывает инструмент только по позиции. В v2.1.216 и новее проверьте лог каждого сервера на наличие строки с именем инструмента, чья схема входных данных будет отклонена. Если ни один лог его не называет, отключайте серверы по одному.
  • Если вы поддерживаете сервер, исправьте input_schema инструмента. Схема должна быть допустимой JSON Schema, а имена свойств верхнего уровня должны иметь длину от 1 до 64 символов и содержать только буквы и цифры ASCII, _, . и -. См. раздел Tools with invalid input schemas.

MCP tool name over 128 characters

MCP-сервер предоставляет инструмент, полное имя которого, например mcp__<server>__<tool>, длиннее 128 символов, которые принимает API. Claude Code не включает этот инструмент в список инструментов, отправляемых Claude, а остальные инструменты сервера продолжают работать. В сессии, которую вы запускаете из оболочки с помощью claude --debug, Claude Code записывает это сообщение в отладочный лог ~/.claude/debug/<session-id>.txt:
Что делать:
  • Если вы поддерживаете сервер, сократите имя инструмента.
  • Если сервер указан в вашей конфигурации MCP, задайте ему там более короткое имя, например db вместо analytics-database. Затем обновите всё, что ссылается на сервер или его инструменты по старому имени, например правила разрешений и matcher хуков.
  • Если сервер входит в состав плагина, полное имя инструмента также включает имя плагина. Попросите сопровождающего плагина сократить имя сервера или инструмента.
До версии 2.1.292 Claude Code всё равно отправлял этот инструмент, и API отклонял каждый запрос, который его содержал, с ошибкой API Error: 400 ... tools.N.custom.name: String should have at most 128 characters.

tool_use.name over 200 characters

Вызов инструмента в истории диалога содержит имя длиннее 200 символов, которые API принимает в запросе:
Claude Code обрезает такое имя до 200 символов при получении ответа и при загрузке сохранённого диалога, поэтому вызов завершается ошибкой инструмента No such tool available, а диалог продолжается без этой ошибки API. Что делать:
  • Выполните claude update, затем возобновите диалог. Обновлённая версия исправляет слишком длинное имя при загрузке транскрипта, поэтому застрявший диалог снова работает.
До версии 2.1.281 слишком длинное имя оставалось в истории, и API отклонял каждый запрос с повторной отправкой диалога, включая /compact и --resume, поэтому ошибка повторялась, и диалог застревал.

There’s an issue with the selected model

Имя настроенной модели не распознано, или у вашей учётной записи нет к ней доступа. Начиная с v2.1.160 завершающая подсказка, показанная здесь в интерактивной форме, зависит от интерфейса.
Что делать:
  • Интерактивный CLI: выполните /model, чтобы выбрать одну из моделей, доступных вашей учётной записи.
  • Неинтерактивный режим (-p): передайте --model с допустимым псевдонимом или ID либо задайте ANTHROPIC_MODEL. В этом интерфейсе текст ошибки показывает Run --model.
  • Agent SDK: текст ошибки не содержит подсказки, потому что модель задаётся программно. Задайте model в Options в TypeScript или ClaudeAgentOptions(model=...) в Python и обрабатывайте структурированную ошибку model_not_found, чтобы показать собственную повторную попытку или выбор модели.
  • Используйте псевдоним, например sonnet или opus, вместо полного ID с версией. Псевдонимы указывают на поддерживаемое значение по умолчанию, поэтому не устаревают. См. раздел Model configuration.
  • Если в CLI постоянно возвращается неправильная модель, где-то задан устаревший ID. Проверьте места, где можно задать модель, в порядке приоритета и удалите устаревшее значение.
  • Claude Code сообщает об истёкшем входе в claude.ai как Login expired, а не как об этой ошибке. До версии 2.1.206 истёкший вход, который уже нельзя было обновить, приводил к этой ошибке для любой модели; если вы видите это в более старой версии, выполните /login.
  • Для развёртываний в Google Cloud’s Agent Platform см. раздел Устранение неполадок в Google Cloud’s Agent Platform.

Model is not a recognized model id

Строка, переданная при переключении модели, не может использоваться Claude Code в качестве модели, поэтому он отклонил переключение, не отправляя запрос, и сессия сохраняет текущую модель. Эта ошибка может возникнуть, когда модель задаётся через метод setModel() в Agent SDK, приложением, которое запускает для вас Claude Code CLI, например Desktop app, или когда вы выбираете модель с устройства, подключённого через Remote Control. До версии 2.1.200 Claude Code сохранял строку и на следующем запросе завершался ошибкой There’s an issue with the selected model.
В этом примере приложение отправило отображаемое имя Sonnet 5, которое сообщение повторяет без пробела. Завершающая подсказка называет ближайший подходящий псевдоним или ID модели. Если ничего достаточно близкого нет, вместо этого выводится Run /model to see available models. В сессии, которую для вас запускает Desktop app, подсказка при отсутствии совпадений звучит как Switch to a different model. При переключении через Agent SDK или приложение, работающее с Anthropic API, эту ошибку вызывает только строка, которая не может быть ID модели, например отображаемое имя или пустая строка. Когда вы выбираете модель с устройства Remote Control, Claude Code проверяет строку локально. Эту ошибку вызывает любая строка, которая не является псевдонимом модели, моделью из списка Claude Code или настроенной вами моделью либо ID, начинающимся с claude-, включая ID с опечаткой, например claud-sonnet-5. До версии 2.1.260 эта проверка не распространялась на выбор через Remote Control, поэтому нераспознанная строка применялась и приводила к ошибке на следующем запросе. Что делать:
  • Выполните /model без аргумента, чтобы открыть окно выбора и выбрать одну из моделей, доступных вашей учётной записи, затем передайте показанный там псевдоним или ID
  • Если вы использовали псевдоним, который поддерживается только в более новой версии Claude Code, выполните claude update или передайте вместо него полный ID модели. Сервер всё равно может требовать минимальную версию Claude Code для этой модели; см. раздел Claude Code does not support this model.
  • Модель, сохранённая до версии 2.1.200, этой проверкой не исправляется. Если устаревшее значение продолжает возвращаться, удалите его из мест, перечисленных в разделе Setting your model.
  • У любого провайдера, кроме Anthropic API, или за шлюзом либо пользовательским ANTHROPIC_BASE_URL эту ошибку вызывает только пустая строка. Claude Code по-прежнему может записывать диагностическую строку о нераспознанной модели во время запроса у любого провайдера.

Model not found

Вы переключились на модель по имени, и Claude Code не смог подтвердить, что модель с таким именем существует. Если имя не является псевдонимом модели или другим написанием, которое Claude Code принимает локально, Claude Code проверяет его минимальным запросом к API, и эта ошибка обычно является ответом вашего API-эндпоинта. При использовании /model <name> имя, которое вообще не может быть ID модели, например содержащее пробелы, вызывает то же сообщение.
У провайдеров со своими ID моделей сообщение может добавлять предложение Try '...' instead, в котором указан ID резервной модели у вашего провайдера. Что делать:
  • Выполните /model без аргумента и выберите одну из моделей, доступных вашей учётной записи, или используйте псевдоним модели, например sonnet, который указывает на поддерживаемое значение по умолчанию
  • Если вы ввели полный ID, сверьте его с каталогом моделей вашего провайдера. Недавно выпущенная модель может быть доступна в Anthropic API раньше, чем её предложит ваш провайдер или регион.
  • В Agent SDK setModel() завершается с этим сообщением, а сессия продолжает работать на предыдущей модели. В TypeScript SDK вызовите supportedModels(), чтобы получить список моделей, на которые можно переключиться.
  • До версии 2.1.265 /model также отклонял написание псевдонима opusplan[1m] с этой ошибкой. В этих версиях обновите Claude Code или задайте модель в настройках либо через --model.

Couldn’t confirm model with the API

Вы переключили модель через метод setModel() в Agent SDK или через приложение, которое запускает для вас Claude Code CLI, например Desktop app, и запрос, подтверждающий ID модели у вашего API-эндпоинта, не получил ответа в течение пяти секунд. Сессия сохраняет текущую модель.
В сессии, которую для вас запускает Desktop app, сообщение заканчивается на Try again. Что делать:
  • Снова переключитесь на модель
  • Если переключение продолжает завершаться неудачей, проверьте, может ли Claude Code связаться с вашим API-эндпоинтом; см. раздел Network and connection errors

API error when checking the picked model

Вы выбрали модель с помощью /model <name>, или приложение, подключённое к сессии, запросило переключение. API отклонил минимальный запрос, который Claude Code отправляет для проверки модели, по причине, не имеющей отдельного раздела, например из-за ограничения частоты запросов или ошибки сервера. Сессия сохраняет текущую модель, о чём сообщается в конце сообщения:
В середине сообщения указаны HTTP-статус и собственное объяснение сервера. Что делать:
  • Действуйте в соответствии с объяснением сервера; при ограничении частоты запросов или статусе 5xx подождите и выберите модель снова
  • Отказы с собственной формулировкой описаны в соседних разделах, например Model not found и Model is restricted by your organization’s settings

Claude Opus is not available with the Claude Pro plan

Ваш активный тариф подписки не включает выбранную модель.
В сессии, которую запускает приложение Claude Desktop, сообщение предлагает sign out and sign in again вместо названий команд. Что делать:
  • Выполните /model и выберите модель, входящую в ваш тариф
  • Если вы недавно повысили тариф и всё равно видите это сообщение, выполните /logout, затем /login. Сохранённый токен отражает ваш тариф на момент входа, поэтому повышение тарифа на claude.ai не вступает в силу в существующей сессии до повторной аутентификации.
  • О том, какие модели входят в каждый тариф, см. claude.com/pricing

Claude Code does not support this model

API отклонил запрос с кодом 400, потому что ваша версия Claude Code ниже требуемого минимума. Либо выбранная модель требует более новой версии (сервер проверяет это для каждой модели), либо её требует политика вашей организации. Ответ 400 содержит код ошибки claude_code_version_too_old, а сообщение указывает, какой минимум применяется.
Формулировка для политики организации:
API проверяет версию, о которой сообщает бинарный файл Claude Code, отправивший запрос. Что делать: Обновите этот бинарный файл, затем начните новую сессию. Способ обновления зависит от того, откуда взялся бинарный файл, кроме случая self-hosted environment:
  • Если вы выполняете claude update на стабильном канале выпусков, обновление не переведёт вас дальше новейшего стабильного выпуска, который всё ещё может быть ниже требуемого минимума. Перейдите на канал latest, затем снова обновитесь. Если ваша организация закрепляет канал или версию через управляемые настройки, попросите администратора изменить это
  • При формулировке для конкретной модели вы можете продолжить работу в текущей сессии, переключившись на другую модель: выполните /model в CLI, вызовите setModel() у объекта Query в TypeScript SDK в режиме потокового ввода или вызовите set_model() у ClaudeSDKClient в Python SDK
  • При формулировке для политики организации обновитесь, прежде чем продолжить

Model is restricted by your organization’s settings

Администратор вашей организации отключил эту модель в консоли администратора claude.ai, или управляемые настройки исключают её через список разрешённых моделей availableModels или список deniedModels. Уведомление появляется при запуске, когда --model, ANTHROPIC_MODEL или настройка model указывают ограниченную модель, и называет модель, которую сессия использует вместо неё. Если управляемые настройки не оставляют сессии ни одной разрешённой модели, см. раздел Managed settings block the default model. Уведомление о замене также может появиться посреди сессии, после того как администратор отключит в консоли администратора claude.ai модель, на которой работает сессия.
Ввод /model <name> для ограниченной модели отклоняется, и сессия сохраняет текущую модель. Для модели, отключённой в консоли администратора, отказ звучит так: Model '<name>' is restricted by your organization's settings. Run /model to choose a different model. Для модели, исключённой управляемыми настройками: Model '<name>' is not available. Your organization restricts model selection. Уведомление с префиксом в виде имени агента, скилла или команды означает, что ограничение применено к модели, запрошенной субагентом: субагент работает на подставленной модели, а модель вашей сессии не меняется. До версии 2.1.223 Claude Code показывал уведомление только для субагентов, запущенных инструментом Agent. Claude Code рассматривает псевдоним семейства моделей — opus, sonnet, haiku или fable — как запрос этого семейства, а не его новейшей версии. В Anthropic API и на Claude Platform on AWS ограниченный псевдоним семейства указывает на новейшую версию семейства, разрешённую настройками вашей организации, и уведомление о замене называет эту версию. Claude Code отклоняет /model <alias>, только если ограничены все версии семейства. До версии 2.1.205 псевдоним семейства заменялся или отклонялся исходя только из его новейшей версии, даже если более старая версия того же семейства была разрешена. Что делать:
  • Выполните /model, чтобы выбрать одну из моделей, разрешённых вашей организацией. Ограниченные модели скрыты в окне выбора.
  • Если ограниченная модель задана в --model, ANTHROPIC_MODEL, поле model файла настроек или во frontmatter model субагента, скилла или команды, удалите или обновите это значение, чтобы уведомление не повторялось
  • Если вам нужен доступ к ограниченной модели, попросите администратора вашей организации включить её. См. раздел Organization model restrictions.

Can’t switch to the default model

Вы выбрали модель Default, например выбрав строку Default в окне выбора /model или введя /model default. Claude Code отклонил переключение, поэтому сессия сохраняет текущую модель.
Формулировка после двоеточия указывает, что заблокировало переключение:
  • your organization's managed settings block it ... in "deniedModels": управляемый список запрещённых моделей блокирует модель, на которую указывает вариант Default
  • your organization allows only the models listed in "availableModels": управляемый список разрешённых моделей availableModels с availableModelsMatch, равным "exact", не включает модель, на которую указывает вариант Default
  • Claude Code couldn't read your organization's managed settings to check which models they allow: не удалось прочитать управляемые настройки, и Claude Code отклоняет переключение, а не применяет его без проверки
Что делать:
  • При формулировках deniedModels и availableModels выполните /model и выберите по имени модель, разрешённую вашей организацией
  • Попросите администратора обновить управляемую настройку, указанную в сообщении
  • При формулировке couldn't read перезапустите Claude Code; если проблема повторяется, попросите администратора проверить управляемые настройки
Если вместо этого сессия не запускается с сообщением Claude Code can't start при таких управляемых настройках, см. раздел Managed settings block the default model.

Model switch was blocked by a PreModelSwitch hook

Хук PreModelSwitch не подтвердил переключение модели, запрошенное вами или клиентом, поэтому сессия сохраняет текущую модель. Если переключение пришло от хоста Agent SDK или Remote Control, а не от введённой вами команды, сообщение звучит как Model switch blocked by a PreModelSwitch hook без названия целевой модели.
Причина после двоеточия указывает, что отклонило переключение:
  • Причина, написанная хуком: хук PreModelSwitch указал эту причину, когда отклонил переключение или запросил подтверждение. Выполните то, что он требует, или выберите модель, разрешённую вашими хуками.
  • PreModelSwitch hook <name> did not respond before its timeout: хук, не ответивший до истечения своего таймаута, блокирует переключение. Исправьте зависающую команду или увеличьте timeout этого хука, затем переключитесь снова.
  • confirmation required, and this session cannot ask: хук ответил ask без причины, а у управляющего запроса нет способа показать запрос подтверждения. Команда /model в запуске -p сообщает о том же состоянии с (run /model interactively to confirm) после причины. Выполните переключение из интерактивной сессии или измените решение хука для этой модели.
  • so organization-managed PreModelSwitch hooks could not be checked: Claude Code не смог определить, какие хуки PreModelSwitch предоставляют управляемые плагины вашей организации, например потому что управляемый плагин не загрузился. Один из этих хуков мог бы заблокировать переключение, поэтому Claude Code отказывает, а не применяет переключение без проверки. Начало причины указывает, что именно не удалось. Claude Code проверяет заново при каждой попытке переключения, поэтому устранённый сбой перестаёт блокировать; если сбой повторяется, запустите claude --debug и снова переключитесь, чтобы получить подробности, затем исправьте плагин или попросите администратора его исправить.
  • a PreModelSwitch hook failed before answering или PreModelSwitch hooks were cancelled (the control stream closed) before answering: выполнение хука завершилось без решения, и Claude Code не считает это подтверждением. Запустите claude --debug, чтобы увидеть, что не удалось, затем переключитесь снова.
До версии 2.1.260 отказ из-за управляемого плагина звучал как plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log. Claude Code один раз повторял загрузку плагина, а затем отклонял последующие переключения в сессии, даже если ваша организация не управляла никакими плагинами. В этих версиях перезапустите сессию, чтобы снова выполнить загрузку плагинов.

Couldn’t save it as your default

Вы выбрали модель, чтобы сохранить её как модель по умолчанию, например с помощью /model <name> или Enter в окне выбора /model, и Claude Code не смог записать выбор в файл пользовательских настроек ~/.claude/settings.json. Само переключение применилось, поэтому текущая сессия работает на выбранной модели, но модель по умолчанию не изменилась, и следующая сессия начнётся со старого значения.
Причина после пути к файлу указывает, что не удалось:
  • can't be written (<code>): запись не удалась с кодом ошибки операционной системы в скобках, например EROFS, когда файл или файл, на который он ссылается, находится в файловой системе, запрещающей запись. Сделайте файл доступным для записи и переключитесь снова. Если файл генерирует другой инструмент, задайте ключ model в этом инструменте; см. раздел A change you made in Claude Code is lost in new sessions.
  • isn't valid JSON: файл на диске не разбирается, и Claude Code оставляет его нетронутым, а не перезаписывает содержимое, которое не может прочитать. Исправьте синтаксическую ошибку, затем переключитесь снова; см. раздел Fix a broken settings file.
Уведомление, заканчивающееся на couldn't confirm it was saved as your default (~/.claude/settings.json is still being written), означает, что запись не завершилась за три секунды. Она продолжается в фоне, поэтому модель по умолчанию всё ещё может сохраниться; проверьте, на какой модели начнётся следующая сессия, или снова выполните /model <name>. До версии 2.1.265 уведомление сообщало, что модель saved as your default for new sessions, даже если запись не удалась.

Advisor is less capable than the current main model

Ваша модель-советник стоит в рейтинге ниже основной модели сессии, поэтому Claude Code сохраняет выбор, но не подключает советника к запросам основной модели.
О том же состоянии сообщают и другие сообщения:
  • В интерактивной сессии уведомление звучит так: Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor.
  • При запуске с флагом --advisor выводится предупреждение "<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model., и сессия всё равно запускается.
Что делать:
  • Выберите советника с более высоким рейтингом или основную модель с более низким рейтингом. В разделе Choose an advisor model приведён рейтинг и перечислены допустимые советники для каждой основной модели.
  • Оставьте советника заданным, если хотите, чтобы субагенты, чью модель он может консультировать, продолжали его использовать
До версии 2.1.287 Claude Code оценивал некоторые пары иначе. Он показывал это примечание для советника Sonnet 5.5 с основной моделью Opus 4.7 или Opus 4.8 — пары, которую он теперь принимает. Кроме того, он подключал некоторых советников, для которых теперь выводится это примечание, например советника Opus 4.8 с основной моделью Sonnet 5.5.

thinking.type.enabled is not supported for this model

Ваша версия Claude Code старше минимальной для выбранной модели. CLI отправил конфигурацию мышления, которую модель больше не принимает.
Что делать:
  • Выполните claude update и перезапустите Claude Code. Для Opus 4.7 требуется v2.1.111 или новее. Для Opus 4.8 требуется v2.1.154 или новее. Для Sonnet 5 требуется v2.1.197 или новее. Для Opus 5 требуется v2.1.219 или новее. Для Opus 5.5 требуется v2.1.280 или новее. Для Sonnet 5.5 требуется v2.1.284 или новее
  • На стабильном канале выпусков обновление не переводит вас дальше новейшего стабильного выпуска, который всё ещё может быть старше этих версий. Перейдите на канал latest, затем обновитесь
  • Если обновиться нельзя, выполните /model и выберите Opus 4.6 или Sonnet 4.6
  • Если вы столкнулись с этим в Agent SDK, обновите пакет SDK. Для Opus 4.8 требуется TypeScript SDK v0.3.154 или новее и Python SDK v0.2.88 или новее. Для Sonnet 5 требуется TypeScript SDK v0.3.197 или новее. Для Opus 5 требуется TypeScript SDK v0.3.219 или новее. Для Opus 5.5 требуется TypeScript SDK v0.3.280 или новее. Для Sonnet 5.5 требуется TypeScript SDK v0.3.284 или новее

Effort isn’t available with thinking turned off

Вы отключили расширенное мышление и работали с уровнем effort выше high. Модель не принимает такое сочетание, поэтому API отклонил запрос.
Подсказка после · зависит от сессии: в неинтерактивной сессии она звучит как use --effort high (or the effortLevel setting), а в сессии, которую запускает приложение Claude Desktop, — как you can lower effort to High. Что делать: До версии 2.1.242 Claude Code показывал собственное сообщение API: API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking. До версии 2.1.251 Claude Code отправлял запрос с заданным вами уровнем effort, поэтому Opus 5 отклонял каждый запрос выше high при отключённом мышлении. Теперь Claude Code отправляет effort high моделям, которые, как ему известно, отклоняют такое сочетание, например Opus 5.

Thinking budget exceeds output limit

Настроенный бюджет расширенного мышления превышает максимальную длину ответа, поэтому для самого ответа не остаётся места.
Что делать:

Tool use or thinking block mismatch

История диалога поступила в API в несогласованном состоянии.
Все варианты означают одно и то же: последовательность блоков tool_use, tool_result и thinking в истории больше не соответствует ожиданиям API. Что делать:
  • Если вы используете Opus 4.7 или Opus 4.8, сначала выполните claude update. Версии до v2.1.156 могут вызывать эту ошибку при обычном использовании инструментов, и /rewind её не устраняет.
  • Выполните /rewind или дважды нажмите Esc, чтобы вернуться к чекпоинту до повреждённого хода и продолжить оттуда. О том, как создаются и восстанавливаются чекпоинты, см. раздел Чекпоинты.

Invalid data in redacted_thinking block

API отклонил запрос с кодом 400, потому что не смог принять блок redacted_thinking, содержащийся в одном из более ранних ходов истории диалога.
Claude Code исключает из запроса прежние размышления диалога и один раз повторяет попытку, поэтому сессия продолжается без показа ошибки. До версии 2.1.282 Claude Code сохранял отклонённый блок, и каждый последующий ход завершался той же ошибкой. Что делать:
  • Если у вас v2.1.281 или старше и каждый ход завершается этой ошибкой, выполните claude update и возобновите сессию
  • Если ошибка не исчезает, выполните /clear, чтобы начать диалог без этого блока

Unsupported tool content removed

Когда Claude Code подключается напрямую к Anthropic API и загружает или просматривает сохранённую сессию, он удаляет содержимое инструментов, которое Anthropic API не принимает, и оставляет эту строку там, где удалённое содержимое находилось между двумя блоками размышлений:
Такое содержимое попадает в файл сессии, когда в формате API отвечал не Anthropic API, а что-то другое — обычно сторонний прокси, заданный через ANTHROPIC_BASE_URL, который преобразует вызовы инструментов другого провайдера. Claude Code удаляет его, только когда сессия подключается напрямую к Anthropic API, и загружает сохранённую историю как есть, когда сессия работает через прокси или у другого провайдера. До версии 2.1.246 Claude Code отправлял использование инструмента и его результат обратно в API, и каждый ход возобновлённой сессии завершался ошибкой 400, например messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', .... Что делать:
  • Если вы видите строку-заполнитель, ничего делать не нужно. Сессия продолжается без удалённого содержимого.
  • Если вместо этого каждый ход возобновлённой сессии завершается ошибкой 400, выполните claude update и снова возобновите сессию. Версии до v2.1.246 не удаляют такое содержимое.

role ‘system’ must precede an ‘assistant’ message

API отклонил запрос с кодом 400, потому что системное сообщение находится в недопустимой для него позиции в диалоге:
Claude Code отправляет часть своих напоминаний и текста вложений как системные сообщения внутри диалога. Когда API отклоняет позицию такого сообщения, Claude Code один раз повторяет запрос, отправляя этот текст как обычные пользовательские сообщения. Родственные формулировки API о размещении, например use the top-level 'system' parameter for the initial system prompt, обрабатываются так же. Если ошибка всё же появляется, отклонённое системное сообщение не из тех, которые Claude Code может удалить. Обычно это означает, что прокси или LLM-шлюз между Claude Code и API добавил собственное системное сообщение. Что делать:
  • Если ошибка повторяется на каждом ходе при работе через прокси или шлюз, настроенный через ANTHROPIC_BASE_URL, подключитесь без прокси, чтобы подтвердить источник, и сообщите об ошибке тому, кто его обслуживает
  • Выполните /clear, чтобы начать новый диалог. Если ошибка возникает и там, причина находится на пути запроса, а не в сохранённом диалоге.
До версии 2.1.280 Claude Code не распознавал эту формулировку, поэтому ошибка появлялась и тогда, когда отклонённое системное сообщение было отправлено самим Claude Code, и каждый последующий ход диалога завершался так же.

Invalid encrypted_content in search_result block

API отклонил запрос с кодом 400, потому что история диалога содержит результаты размещённого веб-поиска, которые он не может расшифровать. Формулировка называет поле, которое не удалось прочитать:
Результаты размещённого инструмента веб-поиска API содержат зашифрованные поля, которые может прочитать только API. Формулировка encrypted_stdout относится к выводу размещённой программы выполнения кода, прочитавшей такие результаты; этот вывод API тоже шифрует. API отклоняет запрос, повторно отправляющий содержимое, которое он не может расшифровать, например содержимое, созданное для другой организации. Собственный инструмент WebSearch Claude Code записывает результаты поиска как обычный текст, поэтому такие блоки обычно попадают в диалог через прокси или LLM-шлюз, который сам выполнял размещённый веб-поиск. Для трёх формулировок, связанных с веб-поиском, Claude Code исключает вызовы поиска, результаты и цитаты из отправляемых данных и один раз повторяет запрос, поэтому сессия продолжается без показа ошибки. Для формулировки encrypted_stdout такого восстановления нет, поэтому это сообщение по-прежнему выводится. До версии 2.1.282 Claude Code сохранял и отклонённые блоки веб-поиска, и каждый последующий ход и /compact завершались так же. Что делать:
  • Если у вас v2.1.281 или старше и каждый ход завершается одной из формулировок веб-поиска, выполните claude update и возобновите сессию
  • Если ошибка не исчезает или сообщение называет encrypted_stdout, выполните /rewind, чтобы вернуться к чекпоинту до хода, добавившего это содержимое, или выполните /clear, чтобы начать диалог без него
  • Если вы запускаете Claude Code через прокси или шлюз, сообщите об ошибке тому, кто его обслуживает

Usage Policy refusal

API отказался отвечать, потому что содержимое диалога вызвало срабатывание проверки Usage Policy. Если сообщение содержит строку Details: `[reasoning_extraction]`, см. раздел Safeguards flagged a request for Claude’s reasoning. Сообщение содержит Request ID и Message ID, которые можно указать в обращении в поддержку, если вы считаете отказ ошибочным.
Сообщение называет отказавшую модель или Claude, если модель не записана. Проверка оценивает весь диалог, а не только ваш последний промпт, поэтому отправка нового сообщения в той же сессии обычно снова вызывает тот же отказ. То же самое происходит после выхода и повторного открытия сессии с --continue или --resume, так как транскрипт на диске по-прежнему содержит вызвавшее отказ содержимое. В Amazon Bedrock, Google Cloud’s Agent Platform и Microsoft Foundry это сообщение также охватывает запросы, которые меры безопасности модели пометили как относящиеся к теме кибербезопасности. См. раздел Safety measures flagged a cybersecurity topic. До версии 2.1.219 сообщение звучало так: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task. Что делать:
  • Дважды нажмите Esc или выполните /rewind, чтобы вернуться к чекпоинту до хода, вызвавшего отказ, затем переформулируйте запрос или выберите другой подход. См. раздел Чекпоинты.
  • Если вы не можете определить, какой ход вызвал отказ, выполните /clear, чтобы начать новый диалог в том же проекте. Предыдущий диалог сохраняется на диске и остаётся доступным в /resume.
  • В неинтерактивном режиме (-p), где возврат недоступен, повторите попытку с переформулированным промптом в новой сессии без --continue. Проверки политики различаются в зависимости от модели, поэтому в некоторых случаях отказ также может устранить переключение на другую модель с помощью --model.

Safety measures flagged a cybersecurity topic

Меры безопасности модели пометили содержимое диалога как относящееся к теме кибербезопасности. Сообщение называет модель, пометившую запрос:
Если сообщение содержит строку Details: `[reasoning_extraction]`, см. раздел Safeguards flagged a request for Claude’s reasoning. Это сообщение содержит ссылку на Cyber Verification Program, которая предоставляет доступ для легитимной работы в области кибербезопасности. Модели с автоматическим переключением на резервную модель выводят другое сообщение, без этой ссылки; на Opus 5.5 и Sonnet 5.5 оно начинается с <model>'s safeguards flagged this session. В том разделе также описано, когда Claude Code вместо этого переключает модель. В Amazon Bedrock, Google Cloud’s Agent Platform и Microsoft Foundry пометка кибербезопасности вместо этого приводит к сообщению Usage Policy refusal. Сама защита работает на стороне сервера и существовала до v2.1.203; с тех пор в клиентских выпусках менялась только формулировка сообщения. С v2.1.203 по v2.1.218 сообщение звучало как <model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:, за которым следовала та же ссылка на справочный центр, а интерактивные сессии добавляли If you were not engaging in a cybersecurity topic, please send feedback via /feedback. До версии 2.1.203 оно звучало как <model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:, за которым следовала ссылка на форму для исключения. Что делать:
  • Если ваша работа требует такого содержимого, подайте заявку на доступ через Cyber Verification Program
  • Если ваш запрос не касался кибербезопасности, выполните /feedback, чтобы сообщить о ложном срабатывании
  • Чтобы продолжить работу в той же сессии, дважды нажмите Esc или выполните /rewind, чтобы вернуться к чекпоинту до хода, вызвавшего пометку, затем выберите другой подход. См. раздел Чекпоинты.

Safeguards flagged a request for Claude’s reasoning

API отклонил запрос, потому что средства защиты пометили его как просьбу к модели воспроизвести в ответе свои внутренние рассуждения. API называет эту категорию отказа reasoning_extraction, и сообщение об отказе содержит такую строку:
До версии 2.1.234 сообщения об отказе не содержали строку Details. Что делать:
  • Удалите или переформулируйте любую инструкцию, которая просит Claude выписать свои размышления или рассуждения дословно или в фиксированном формате, например в разделе <thinking>, в разделе-черновике или в поле reasoning в выводе JSON. Такая инструкция может находиться в вашем промпте или в настройке, которую Claude Code загружает вместе с ним, например в CLAUDE.md, скилле, промпте субагента, стиле вывода или описании MCP-инструмента.
  • Чтобы проверить, не вызывает ли отказ одна из таких настроек, выполните claude --safe-mode в терминале, чтобы запустить сессию с отключёнными настройками, затем отправьте тот же промпт
  • После изменения настройки начните новую сессию
  • Чтобы переформулировать уже отправленный промпт, см. раздел Rewind and summarize
  • Вы по-прежнему можете попросить Claude объяснить свой ответ. Попросите краткое объяснение, доказательства, лежащие в основе результата, или сводку выполненных действий. Чтобы читать сводки размышлений Claude, см. showThinkingSummaries.
  • Другие примеры, а также что делать, если переформулированный запрос всё равно отклоняется, см. в разделе Keep reasoning in thinking blocks

Output blocked by content filtering policy

Фильтр содержимого вывода API остановил ответ, который генерировал Claude. Текст сообщения приходит от API:
Что делать:
  • Переформулируйте последнее сообщение или выберите другой подход
  • Чтобы вернуться к чекпоинту до хода, вызвавшего блокировку, дважды нажмите Esc или выполните /rewind. См. раздел Чекпоинты

Ошибки командной строки

Эти ошибки возникают в командной строке claude и её подкомандах, при отправке имени команды в строке ввода, а также в командах вроде /security-review, которые собирают контекст, выполняя shell-команды до запуска своего промпта. Они также возникают в /tui, которая перезапускает CLI.

Конфликт между --bg и --print

Это сообщение требует Claude Code v2.1.198 или новее. Вы объединили --bg с -p или --print в одном вызове claude. --bg запускает фоновую сессию, к которой вы позже подключаетесь с помощью claude agents, а --print работает неинтерактивно и никогда не запускает интерактивную сессию, к которой подключается claude agents. До v2.1.198 такое сочетание молча создавало фоновое задание, к которому невозможно было подключиться.
Что делать:
  • Уберите -p или --print. --bg принимает промпт как позиционный аргумент, поэтому claude --bg "<task>" — это полная команда. См. Запуск новых агентов из оболочки.
  • Чтобы выполнить промпт неинтерактивно и вывести результат вместо создания фоновой сессии, уберите --bg и выполните claude -p "<task>"

Конфликт между флагом системного промпта и его файловой формой

Вы передали --append-subagent-system-prompt вместе с --append-subagent-system-prompt-file в одном вызове claude, поэтому claude завершается с кодом выхода 1 вместо запуска сессии:
До v2.1.283 claude завершался так же, когда вы передавали --system-prompt вместе с --system-prompt-file или --append-system-prompt вместе с --append-system-prompt-file, поскольку эти пары конфликтовали, а не объединялись. В этих версиях сообщение называет пару, которую вы объединили. Что делать:
  • Оставьте одну форму флага и уберите другую. Чтобы объединить фиксированный файл промпта с текстом для конкретного запуска, добавьте текст в файл перед запуском вместо передачи обоих флагов

Недопустимая конфигурация --agents

Значение, переданное в --agents, недопустимо, поэтому claude завершается с кодом выхода 1 вместо запуска сессии. Если вы передаёте --safe-mode или задаёте CLAUDE_CODE_SAFE_MODE, Claude Code полностью игнорирует --agents. С --resume или --continue встроенное значение JSON не проверяется, и сессия запускается; значение, прочитанное из файла, проверяется при каждом запуске. До v2.1.242 Claude Code всё равно запускал сессию.
Что следует за первой строкой, зависит от того, какую проверку не прошло значение. Claude Code выполняет эти проверки по порядку и останавливается на первой неудачной. Если в вашем значении есть проблемы двух видов, вторую вы увидите только после исправления первой:
  1. Если значение начинается с {, но не разбирается как JSON, или содержимое файла --agents не разбирается, Claude Code выводит одну строку invalid JSON: с собственным сообщением парсера JSON
  2. Если значение разбирается, но определение агента не соответствует схеме для субагентов, определённых через CLI, Claude Code выводит по одной строке на каждую проблему
  3. Если имя агента начинается с -, Claude Code выводит <name>: agent names must not start with '-'
Если строк с проблемами больше 20, Claude Code выводит первые 20, а остальные заменяет на …and N more. С --print флаг --agents также принимает путь к файлу JSON вместо встроенного объекта. До v2.1.281 --agents принимал только встроенный JSON и считал путь к файлу недопустимым JSON. У файловой формы есть собственные отказы, которые выводятся вместо этого сообщения, в том числе следующие:
  • Error: --agents takes a JSON object, or a file path only with --print (-p): Claude Code прочитал значение как путь к файлу в интерактивной сессии. Передайте определения как встроенный JSON или добавьте -p, чтобы прочитать их из файла.
  • Error: --agents file not found: <path>: по этому пути нет файла. Значение, которое не начинается с { и не является допустимым JSON, читается как путь, поэтому встроенный JSON, испорченный вашей оболочкой, тоже может вызвать эту ошибку. Проверьте путь или кавычки и выполните команду снова.
Что делать:

Облачные сессии нельзя создавать из сессии --restricted

Если вы запускаете сессию с --restricted, Claude Code отказывается создавать из неё облачные сессии, поскольку новая сессия работала бы вне ограниченного процесса и не соблюдала бы ограниченный режим. Claude Code отказывает на стороне клиента, до обращения к серверу, поэтому облачная сессия не создаётся:
Что делать:
  • Выполните задачу локально в ограниченной сессии
  • Если вы управляете тем, как запускается сессия, запустите новую сессию claude без --restricted и создайте облачную сессию из неё
До v2.1.248 в Claude Code не было флага --restricted; более ранние версии отклоняют сам флаг с ошибкой неизвестного параметра.

Облачные сессии отключены политикой вашей организации

Политика allow_remote_sessions вашей организации выключена, поэтому облачные сессии и команды, которые их используют, недоступны:
Это сообщение появляется, когда вы создаёте облачную сессию из терминала, и когда вы отправляете команду, которой нужны облачные сессии, например /teleport, /remote-env или /web-setup. До v2.1.268 отправка одной из этих команд возвращала Unknown command. Если сообщение вместо этого называет учётные данные, которые использует эта сессия, и заканчивается на Cloud sessions use your claude.ai login., см. Cloud sessions use your claude.ai login. Если Claude Code вообще не смог загрузить политику вашей организации, вы увидите другое сообщение. Что делать:
  • Попросите Owner в вашей организации включить облачные сессии в настройках администратора Claude Code на claude.ai/admin-settings/claude-code

Cloud sessions use your claude.ai login

Когда отказ по политике называет учётные данные, которые использует эта сессия, и заканчивается этим предложением, Claude Code проверил политику облачных сессий той организации, которая выдала эти учётные данные. Эта организация может отличаться от той, к которой относится ваш вход в claude.ai:
Последнее предложение означает, что облачные сессии работают с вашим входом в claude.ai, а не с этими учётными данными. Эта форма появляется, когда вы запускаете, возобновляете облачную сессию или отправляете ей сообщение из оболочки, например с --cloud или --teleport. До v2.1.296 Claude Code и в этом случае выводил форму, предлагающую обратиться к администратору организации.

Couldn’t verify your organization’s policy for cloud sessions

Эти сообщения означают, что Claude Code не смог загрузить политику вашей организации, которую он проверяет перед тем, как создать, возобновить облачную сессию или отправить ей сообщение. Пока запрос политики не завершился, сообщение выглядит так:
Внутри сессии это сообщение выдаёт и команда, которой нужны облачные сессии, например /teleport или /web-setup. Это происходит даже там, где ваша оболочка вывела бы форму Cloud sessions aren't available:, а второе предложение звучит как Check your network connection, then restart Claude Code and try again. Когда запрос политики уже завершился ошибкой, сообщение указывает, что именно не удалось. Это относится к случаям, когда вы запускаете, возобновляете облачную сессию или отправляете ей сообщение из оболочки с флагом вроде --cloud или --teleport. Если нет маршрута до API, сообщение выглядит так:
Другие сбои начинаются так же, но называют свою причину, например прокси, отклонивший запрос с HTTP 403, ошибку сервера или учётные данные, которые API не принял. Если API не принял учётные данные, которые эта сессия использует вместо вашего входа в claude.ai, например переменную окружения ANTHROPIC_API_KEY, сообщение может также назвать их и предложить их сбросить:
До v2.1.296 при этих сбоях тоже выводилось сообщение Couldn't verify. Что делать:
  • При сообщении Couldn't verify проверьте сетевое подключение и повторите попытку. Внутри сессии сначала перезапустите Claude Code
  • При сообщении Cloud sessions aren't available: сделайте то, чего требует указанная причина, например проверьте прокси или сбросьте названные учётные данные, затем выполните команду снова

Nothing was stashed because a folder replaced a tracked file

Это сообщение означает, что в вашей рабочей копии папка теперь находится там, где раньше был отслеживаемый git файл или ссылка. Оно появляется после того, как вы выбираете вариант stash при переносе облачной сессии в терминал, например с помощью claude --teleport или /teleport. Stash такого состояния мог бы удалить файлы внутри папки, поэтому Claude Code отказывается выполнять stash и оставляет рабочую копию и индекс без изменений:
Что делать:
  • Сделайте коммит изменения или переместите папку в другое место, как указано в сообщении, затем снова выполните teleport

Значение --json-schema не является допустимой JSON Schema

Схема, переданная в --json-schema в неинтерактивном режиме, не прошла компиляцию JSON Schema, поэтому claude завершается с кодом выхода 1 вместо выполнения промпта. До v2.1.205 недопустимая схема давала неструктурированный вывод без ошибки, а любая схема с ключевым словом format считалась недопустимой.
Текст после второго двоеточия — это диагностика валидатора, которая называет ключевое слово или место, не прошедшее проверку. Схемы с ключевым словом format, например "format": "email", допустимы: Claude Code принимает format как аннотацию и не применяет его. Claude Code выполняет две проверки до компиляции схемы: значение, которое не разбирается как JSON, отклоняется с Error: --json-schema is not valid JSON, а допустимый JSON, не являющийся объектом, — с Error: --json-schema must be a JSON object. Что делать:

Файл настроек превышает лимит 2MiB

Файл, переданный в --settings, больше 2 MiB, поэтому claude завершается с кодом выхода 1 при запуске вместо его загрузки. До v2.1.214 Claude Code читал файл без проверки размера, и файл размером в несколько гигабайт или файл устройства, например /dev/zero, неограниченно увеличивал потребление памяти.
Таким же образом Claude Code отклоняет путь --settings, который не является обычным файлом: для устройства, FIFO или сокета выводится Error: Cannot use settings file (Not a regular file (device, FIFO, or socket)) с последующим путём, а для каталога указывается причина EISDIR. Что делать:
  • Укажите в --settings обычный файл настроек JSON размером менее 2 MiB. Формат описан в разделе Настройки.

Текущий каталог больше не существует

Вы запустили claude из каталога, который был удалён или перемещён после того, как ваша оболочка в него перешла, например worktree или временный каталог, удалённый другой оболочкой. Claude Code не может прочитать свой рабочий каталог, поэтому завершается с кодом выхода 1 до запуска сессии — как в интерактивном, так и в неинтерактивном режиме. До v2.1.239 Claude Code вместо этого сообщения аварийно завершался, выводя минифицированный исходный код бандла и необработанный стек ENOENT ... uv_cwd в stderr.
Причина и решение одинаковы для обеих форм. Если Claude Code не может прочитать рабочий каталог по другой причине, например из-за изменения прав доступа, сообщение вместо этого называет код ошибки: Can't read the current directory (EACCES). Start Claude Code from a different directory. В macOS ошибка EPERM для каталога в ~/Desktop, ~/Documents, ~/Downloads или iCloud Drive обычно означает, что macOS блокирует доступ вашего приложения терминала к этой папке. Другие команды, читающие эту папку, завершаются с той же ошибкой: ls в ней сообщает Operation not permitted, даже с sudo. Что делать:
  • Перейдите в существующий каталог, например в домашний каталог или каталог проекта, затем снова выполните claude
  • Если каталог был создан заново по тому же пути, ваша оболочка всё ещё держит удалённый. Выполните cd "$PWD" или выйдите из каталога и войдите снова, затем снова выполните claude
  • При EPERM в macOS закройте приложение терминала с помощью Cmd+Q, откройте его снова, вернитесь в эту папку и выполните claude. Если ls в этой папке по-прежнему завершается с ошибкой, откройте System Settings > Privacy & Security > Files and Folders, включите эту папку для своего приложения терминала, затем снова откройте терминал

Временный каталог отклонён или не может быть создан

В macOS и Linux Claude Code при запуске создаёт приватный временный каталог claude-<uid> в системном временном каталоге или в каталоге, заданном переопределением CLAUDE_CODE_TMPDIR. Если каталог не удаётся создать или уже существующий по этому пути элемент не проходит проверки безопасности, Claude Code выводит ошибку в stderr и завершается с кодом выхода 1 вместо запуска сессии:
Что делать:
  • При ENOSPC освободите место на томе, где находится временный каталог
  • Для форм с Refusing to use it удалите сам указанный элемент, а не то, на что указывает ссылка, и снова запустите Claude Code; в случае формы owned by uid удалить его может только администратор или этот пользователь
  • При is not readable выполните chmod 0700 для указанного каталога или удалите его и запустите снова
  • В любом из этих случаев задайте в CLAUDE_CODE_TMPDIR каталог, которым вы управляете, и снова запустите Claude Code, не трогая отклонённый путь

Не удалось определить реальное расположение каталога

Вы выполнили /add-dir для подкаталога рабочего каталога, и Claude Code не смог определить реальное расположение этого каталога. У вас уже есть доступ к файлам в подкаталоге рабочего каталога, поэтому /add-dir только загружает его скиллы, команды и агентов. Перед их загрузкой Claude Code проверяет, что реальное расположение каталога, с разрешением всех символических ссылок, находится внутри рабочего каталога. Если Claude Code не может определить это расположение, он ничего не загружает и показывает это сообщение:
Что делать:
  • Проверьте, что путь указывает на реальный каталог внутри рабочего каталога, затем снова выполните /add-dir
  • Сообщение не меняет ваш доступ к файлам; оно лишь сообщает, что содержимое .claude/ этого каталога не было загружено
До v2.1.261 это сообщение также появлялось при каждом /add-dir <subdirectory>, когда рабочий каталог находился на автомонтировании /net/<host>, где Claude Code намеренно не разрешает пути; с каталогом всё было в порядке, и повторная попытка не помогала.

Рабочее пространство не является доверенным при запуске Remote Control

Вы запустили серверный режим Remote Control командой claude remote-control или её псевдонимом claude rc в каталоге, которому не доверяете, и команда не смогла спросить вас, доверять ли ему. Например, стандартный ввод или стандартный вывод команды не является терминалом, поскольку один из них перенаправлен или передан через конвейер. Команда завершается с кодом выхода 1:
Два варианта, которые также начинаются с Error: Workspace not trusted., появляются в терминале, слишком маленьком, чтобы показать, что включает доверие к каталогу, или в терминале, который не сообщил свой размер. Увеличьте окно или переключитесь на обычное окно терминала, затем снова выполните claude rc. В домашнем каталоге сообщение другое, поскольку диалог доверия к рабочему пространству никогда не сохраняет доверие для домашнего каталога, поэтому подтверждение в нём не может удовлетворить эту проверку. До v2.1.214 в домашнем каталоге показывалось сообщение выше, совет из которого там не может сработать.
Если вы ответите n или нажмёте Enter на вопрос Trust <directory>?, команда выведет сообщение Remote Control did not start с названием каталога и завершится с кодом выхода 1. Снова выполните claude rc, чтобы ответить y. Что делать:
  • Сначала подтвердите доверие к каталогу из терминала: выполните там claude rc и ответьте y или выполните там claude и примите диалог доверия к рабочему пространству, затем снова выполните исходную команду
  • В домашнем каталоге перейдите в каталог проекта и запустите Remote Control там
До v2.1.284 команда никогда не задавала этот вопрос, даже в терминале.

Не переносится в сессии, которые запускает Remote Control

Вы запустили Remote Control с глобальным флагом claude перед глаголом remote-control — флагом, который ограничивал бы или настраивал сессии, запускаемые Remote Control, например --settings, --setting-sources, --permission-mode, --disallowed-tools или --mcp-config. Флаг, указанный перед глаголом, никогда не доходит до этих сессий. Вместо этого Claude Code отказывается запускаться и называет флаг:
Claude Code не отклоняет глобальные флаги, которые безопасно отбросить, например --verbose, --model или добавленные обёрткой --session-id или --plugin-dir: он их игнорирует, и Remote Control запускается. Claude Code также отказывается запускаться при глобальном флаге, который он пока не распознаёт как безопасный, поэтому флаг, добавленный в более новом выпуске, может появляться в этом сообщении, пока более поздний выпуск не пометит его как безопасный. Что делать:
  • Уберите флаг перед глаголом и передайте собственные параметры Remote Control после него; claude remote-control --help выводит их список
  • Если отклонённый флаг — --permission-mode, выполните claude remote-control --permission-mode <mode>, чтобы задать режим разрешений для сессий, которые запускает Remote Control
До v2.1.248 claude remote-control не принимал собственные флаги, если первым шёл глобальный флаг, и команда завершалась с ошибкой unknown option.

claude import ещё недоступен в этой сборке

Вы выполнили claude import, и Claude Code обнаружил, что процесс импорта выключен, поэтому команда завершается с кодом выхода 1 вместо запуска импорта. До v2.1.222 сборка с выключенным процессом импорта воспринимала import как промпт и запускала интерактивную сессию вместо вывода этого сообщения.
Claude Code включает claude import через флаг функции, который он получает от Anthropic и кэширует на диске. Это сообщение означает, что кэшированное значение выключено. Обычно причина одна из следующих:
  • Вы ещё не запускали сессию после установки, поэтому Claude Code ещё не получил флаг. Первый claude import может вывести это сообщение, даже если функция вам доступна.
  • Вы используете Claude Code через Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry или Claude Platform on AWS либо через шлюз приложений Claude. В этих сессиях Claude Code не получает флаги функций, поэтому claude import остаётся недоступным.
  • Вы задали DISABLE_TELEMETRY, DO_NOT_TRACK, DISABLE_GROWTHBOOK или CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, которые отключают получение флагов функций, поэтому claude import остаётся недоступным.
Что делать:
  • В новой установке запустите claude, дождитесь загрузки сессии, выйдите и снова выполните claude import
  • Если получение флагов функций остаётся отключённым, настройте конфигурацию самостоятельно: добавьте MCP-серверы с помощью claude mcp add и создайте файлы CLAUDE.md, скиллы и команды и субагентов, которых хотите перенести. В сообщении также упоминается ~/.claude/settings.json. Из конфигурации, которую переносит claude import, этот файл содержит только режим разрешений; Claude Code не читает из него MCP-серверы.

Не удалось прочитать конфигурацию Claude Code

Вы выполнили claude import, когда Claude Code не мог разобрать ~/.claude.json — файл, в котором хранятся ваш вход и состояние для каждого проекта. Подкоманда читает этот файл, чтобы проверить доступность, но не показывает диалог восстановления, который показывает интерактивная сессия, поэтому завершается с кодом выхода 1. До v2.1.222 claude import с нечитаемым файлом конфигурации запускал интерактивную сессию, диалог восстановления которой обрабатывал файл.
Что делать:
  • Выполните claude без аргументов. Claude Code обнаружит недопустимый файл и предложит сбросить его. Затем снова выполните claude import.
  • Чтобы сохранить внесённые вручную изменения, вместо этого исправьте синтаксис JSON в ~/.claude.json в редакторе, затем снова выполните claude import

Не удалось импортировать сервер из Claude Desktop

Claude Code не смог добавить один из серверов, выбранных в claude mcp add-from-claude-desktop. Команда всё равно импортирует остальные выбранные серверы и выводит по одной строке на каждый сервер, который не удалось добавить. До v2.1.205 первый сервер с ошибкой останавливал импорт.
Текст после имени сервера — это причина. Самая распространённая — проверка имени: Claude Desktop допускает в именах серверов символы, например пробелы и точки, тогда как claude mcp ограничивает их буквами, цифрами, дефисами и подчёркиваниями. Другие причины — конфигурация сервера, не прошедшая проверку, и сервер, заблокированный политикой MCP вашей организации. Что делать:
  • Переименуйте сервер в claude_desktop_config.json, используя только буквы, цифры, дефисы и подчёркивания, затем снова выполните claude mcp add-from-claude-desktop
  • Добавьте этот сервер напрямую с помощью claude mcp add или claude mcp add-json под допустимым именем. См. Импорт MCP-серверов из Claude Desktop.

Не удаётся добавить MCP-сервер в управляемую область действия

Вы выполнили claude mcp add или claude mcp add-json с --scope managed. Эта область действия содержит серверы, которые ваша организация предоставляет через управляемую настройку managedMcpServers. Claude Code читает их только из управляемых настроек, поэтому команда не может записать сервер в эту область действия.
Что делать:
  • Добавьте сервер в область действия, доступную для записи: local, user или project. Без --scope команда использует local. См. Области действия установки MCP
  • Чтобы предоставить сервер каждому пользователю в организации, добавьте его в managedMcpServers в развёртываемых вами управляемых настройках

Не удаётся добавить MCP-сервер, когда управляемые настройки разрешают только серверы из плагинов

Вы выполнили claude mcp add или claude mcp add-json, когда управляемые настройки вашей организации задают для strictPluginOnlyCustomization значение true или список, включающий mcp. С этой настройкой Claude Code не загружает MCP-серверы из ~/.claude.json или .mcp.json, поэтому команда завершается с кодом выхода 1 вместо сохранения сервера, который никогда не загрузится:
claude mcp add-from-claude-desktop сообщает о каждом выбранном сервере как о неимпортированном, указывая это сообщение в качестве причины. /import выводит это сообщение для каждого MCP-сервера, который пытается добавить, и всё равно импортирует остальные найденные элементы. До v2.1.284 эти команды сохраняли сервер и сообщали об успехе, но сервер никогда не загружался. Что делать:
  • Установите плагин, который предоставляет этот сервер
  • Попросите администратора распространить сервер в плагине или предоставить его через managedMcpServers, если это удалённый сервер HTTP или SSE

Не удаётся прочитать .mcp.json

Команда, читающая файл проекта .mcp.json, например claude mcp add или claude mcp add-json с --scope project либо claude mcp remove, обнаружила, что файл в текущем каталоге не является обычным файлом или больше 2 MiB, поэтому завершается с этой ошибкой вместо чтения файла.
До v2.1.257 FIFO на месте .mcp.json заставлял команду бесконечно ждать без вывода, а символическая ссылка на файл устройства, например /dev/zero, увеличивала потребление памяти, пока процесс не завершался принудительно. Что делать:
  • Проверьте, что находится по пути .mcp.json в текущем каталоге. Замените это обычным файлом JSON в формате области действия проекта или удалите, затем снова выполните команду.

MCP-сервер не был сохранён или удалён

Вы выполнили claude mcp add, claude mcp add-json или claude mcp remove для сервера в области действия user или local. Обе области действия хранятся в ~/.claude.json, и изменения нет в этом файле, когда Claude Code перечитывает его после записи. Команда завершается с этой ошибкой вместо строки об успехе.
После удаления сообщение содержит was not removed from и заканчивается на then remove the server again. Для сервера в области действия local за путём следует каталог проекта, к которому относится запись, в виде (local scope for /path/to/project). До v2.1.283 claude mcp add, claude mcp add-json и claude mcp remove сообщали об успехе, даже если изменение не попадало в файл. Что делать:
  • Сделайте файл, указанный в сообщении, доступным для записи или выполните команду вне песочницы, затем снова выполните ту же команду добавления или удаления.

MCP-сервер, возможно, не был сохранён или удалён

Вы выполнили claude mcp add, claude mcp add-json или claude mcp remove для сервера в области действия user или local, и Claude Code не смог перечитать ~/.claude.json, чтобы подтвердить изменение. Изменение может быть или не быть на диске. Текст в скобках — ошибка этого чтения.
После удаления сообщение содержит may not have been removed и заканчивается на then remove the server again if it is still listed. До v2.1.283 эти команды сообщали об успехе, даже если изменение не удавалось подтвердить. Что делать:
  • Выполните claude mcp get <name>, чтобы проверить, есть ли изменение на диске. Для сервера в области действия local выполните её из каталога проекта, к которому относится сервер, поскольку локальная область действия задаётся для каждого проекта.
  • Если после добавления сервер отсутствует или после удаления всё ещё в списке, снова выполните ту же команду добавления или удаления.

Сервер размещён Anthropic и не поддерживает локальный OAuth

Вы начали вход для MCP-сервера, URL которого указывает на размещённый Anthropic хост коннектора, выполняющий аутентификацию через сторонний поставщик удостоверений. К таким хостам относятся microsoft365.mcp.claude.com, gmail.mcp.claude.com и gcal.mcp.claude.com. Claude Code отказывается запускать свой локальный процесс OAuth для этих хостов как из панели /mcp, так и из claude mcp login, потому что вход для них работает только через claude.ai.
Что делать:
  • Удалите свою запись с помощью claude mcp remove <name>, чтобы она не скрывала коннектор claude.ai с тем же URL
  • После удаления подключите сервис на claude.ai/customize/connectors, войдя в учётную запись, которую используете в Claude Code. После подключения коннектор автоматически появится в Claude Code, если ваш активный способ аутентификации — вход по подписке claude.ai

Сервер отклонил заголовок Authorization, созданный настроенным headersHelper

MCP-сервер, у которого headersHelper предоставляет заголовок Authorization, ответил на подключение HTTP 401 или 403, поэтому Claude Code сообщает о неудачном подключении. Поскольку заголовок Authorization предоставляет helper, Claude Code не переключается на OAuth для этого сервера:
Claude Code заново запускает helper при каждой попытке подключения, поэтому повторная попытка после временного отказа, например из-за гонки при ротации токена, может завершиться успешно с новыми учётными данными. Что делать: До v2.1.248 Claude Code выполнял обнаружение OAuth для сервера, у которого helper предоставлял заголовок Authorization. Это обнаружение могло завершиться ошибкой Incompatible auth server: does not support dynamic client registration вместо сообщения об отклонённых учётных данных.

Инструмент запроса разрешений MCP не найден

Инструмента, переданного в --permission-prompt-tool, не было среди подключённых инструментов MCP, когда запуску впервые понадобилось решение о разрешении: либо его сервер так и не подключился, либо ни один подключённый сервер не предоставляет инструмент с таким именем. Claude Code всё равно отправляет ваш промпт: неинтерактивный запуск завершается с этой ошибкой и кодом выхода 1 при первом вызове инструмента, поэтому не даёт ответа, хотя запрос был выполнен. Перед первым промптом Claude Code ожидает подключения этого сервера до истечения таймаута подключения для каждого сервера в 30 секунд, задаваемого MCP_TIMEOUT. До v2.1.206 при запуске не ожидалось завершения подключения сервера, поэтому медленно запускающийся, но исправный сервер тоже вызывал эту ошибку.
Список после Available MCP tools: называет подключённые инструменты MCP. Что делать:
  • Убедитесь, что сервер запускается и остаётся подключённым: выполните claude mcp list в том же каталоге и проверьте, что сервер отмечен как подключённый
  • Убедитесь, что имя инструмента совпадает с именем mcp__<server>__<tool>, которое предоставляет сервер
  • Если серверу нужно больше 30 секунд для запуска, увеличьте MCP_TIMEOUT

Порт обратного вызова OAuth уже используется

Когда вы входите на удалённый MCP-сервер через OAuth, Claude Code запускает локальный прослушиватель для получения обратного вызова входа. Если нужный этому прослушивателю порт занят другим процессом, вход завершается с этим сообщением. Чаще всего это происходит с фиксированным портом обратного вызова, заданным через переменную MCP_OAUTH_CALLBACK_PORT или --callback-port, поскольку без него Claude Code выбирает свободный порт.
В Windows вместо этого предлагается команда netstat -ano | findstr :<port>. Что делать:
  • Выполните команду из сообщения, чтобы найти процесс, занимающий порт, и остановите его или дождитесь его завершения
  • Если другой программе этот порт нужен постоянно, зарегистрируйте на сервере другой redirect URI и задайте его порт через MCP_OAUTH_CALLBACK_PORT или --callback-port — в зависимости от того, что вы используете
  • Затем снова начните вход, например выбрав сервер в /mcp

Нет свободных портов для перенаправления OAuth

Когда вы входите на удалённый MCP-сервер через OAuth, Claude Code запускает локальный прослушиватель для получения обратного вызова входа. Вход завершается с этим сообщением, когда Claude Code не может привязать для него локальный порт. Что-то на компьютере мешает ему прослушивать 127.0.0.1, например программы безопасности или политика песочницы, запрещающая локальные прослушиватели.
До v2.1.268 Claude Code не переключался на порт, назначаемый операционной системой, поэтому сообщение появлялось и тогда, когда не удавалось привязать только порты, выбранные им самим. Такое может происходить на хостах Windows, где Hyper-V резервирует диапазоны портов, охватывающие порты, из которых выбирает Claude Code. Что делать:
  • Проверьте, не запрещают ли программы безопасности или политика песочницы процессам прослушивать 127.0.0.1, и разрешите Claude Code привязывать локальный порт
  • Затем снова начните вход, например выбрав сервер в /mcp

/security-review завершается с ошибкой без origin/HEAD

/security-review формирует контекст ревью, сравнивая вашу ветку с origin/HEAD — локальной ссылкой, которая указывает, какая ветка является веткой по умолчанию на вашем удалённом репозитории origin. Если этой ссылки нет, команды git, собирающие diff, завершаются с ошибкой, и ревью останавливается, не начавшись.
Вместо этого сообщение может цитировать git log или другую команду git diff. Git создаёт origin/HEAD только тогда, когда удалённый репозиторий объявляет ветку по умолчанию и ваш refspec для fetch её охватывает, что и происходит при полном git clone удалённого репозитория с коммитами. Ссылка отсутствует в следующих конфигурациях:
  • Checkout одной ветки или в CI, который получает слишком узкий refspec
  • Удалённый репозиторий, у которого HEAD на сервере указывает на ветку, которую никто не отправлял
  • Репозиторий без удалённого origin или такой, для которого вы никогда не выполняли fetch
Claude Code показывает ту же ошибку для любого скилла, который внедряет динамический контекст, и неудачная внедрённая команда прерывает вызов этого скилла. Две родственные строки появляются ещё до выполнения команды:
  • Shell command permission check failed for pattern "...": проверка разрешений не разрешила команду. В разделе Проверки разрешений для внедрённых команд описано, какие результаты приводят к прерыванию в каждом режиме разрешений и как заранее одобрить команду с помощью allowed-tools
  • Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found: frontmatter скилла требует bash на компьютере, где его нет. Установите Git for Windows или измените frontmatter на shell: powershell. См. Как выполняются внедрённые команды
Что делать:
  • Создайте ссылку, указав ветку по умолчанию вашего удалённого репозитория: git remote set-head origin <default-branch>. Это работает, если существует локальная отслеживающая ссылка origin/<default-branch>. Если её нет, как в клонах одной ветки, сначала получите ветку: выполните git remote set-branches --add origin <branch>, затем git fetch origin, затем снова выполните команду set-head. Снова запустите /security-review.
  • Если вы не хотите указывать ветку, выполните git fetch origin, а затем git remote set-head origin --auto, которая спрашивает у удалённого репозитория, какая ветка у него по умолчанию. Она завершается с error: Cannot determine remote HEAD, если удалённый репозиторий не объявляет ветку по умолчанию, потому что он пуст или его HEAD указывает на ветку, которую никто не отправлял; в этом случае укажите ветку явно. Она завершается с error: Not a valid ref, если ваш клон не получает эту ветку; сначала расширьте refspec, как описано выше.
  • Если у репозитория нет удалённого репозитория, добавьте его с помощью git remote add origin <url> и выполните fetch перед созданием ссылки. Если удалённый репозиторий пуст, сначала отправьте свою ветку с помощью git push -u origin HEAD и укажите эту ветку в команде set-head; после этого origin/HEAD указывает на только что отправленную ветку, поэтому /security-review видит пустой diff, пока ваша ветка не разойдётся с ней.

Необходимо предоставить ввод при использовании --print

Для запуска интерактивного интерфейса простому claude нужно, чтобы stdout был терминалом. Если stdout перенаправлен или консоль не является настоящим терминалом, как в PowerShell ISE и некоторых панелях вывода IDE, claude вместо этого работает неинтерактивно. Это тот же режим, что и claude -p, которому требуется промпт, поэтому сообщение упоминает --print, даже если вы не передавали этот флаг. Передача -p/--print без промпта и без данных, переданных через stdin, вызывает ту же ошибку в любом окружении.
Что делать:
  • Для интерактивной работы запускайте claude в настоящем терминале: в Windows Terminal или консоли PowerShell, а не в ISE, и во встроенном терминале IDE, а не в панели вывода
  • Для однократного использования передайте промпт: claude -p "your question" или передайте его через конвейер: echo "your question" | claude -p

Claude Code не может здесь читать клавиатуру

Вы выполнили claude без -p, что запускает интерактивную сессию, но её стандартный ввод не является терминалом. Что-то передало его через конвейер или перенаправило, либо программа, запустившая claude, предоставила собственный поток ввода. Интерактивной сессии нужен терминал, из которого она читает ваши нажатия клавиш, и то, что Claude Code делает без него, зависит от вашей платформы:
  • Windows: Claude Code выводит сообщение в stderr и завершается с кодом выхода 1 вместо запуска интерфейса
  • macOS и Linux: Claude Code читает нажатия клавиш из /dev/tty и запускает сессию, используя переданный через конвейер текст как первый промпт. Вы видите сообщение, когда /dev/tty не удаётся открыть, и его первая строка упоминает /dev/tty вместо формулировки для Windows.
В Windows сообщение выглядит так:
Что делать:
  • Для интерактивной работы запускайте claude непосредственно в терминале, не передавая и не перенаправляя его ввод
  • Чтобы получить ответ без интерактивного интерфейса, например из скрипта, добавьте -p и передайте промпт как аргумент или через stdin, например claude -p "your question" или echo "your question" | claude -p. То же работает с --continue и --resume <session-id>.
До v2.1.287 Claude Code вместо вывода этого сообщения запускал интерфейс, а затем либо ничего не показывал на экране, либо завершался с ошибкой, содержащей Raw mode is not supported. Если вы видите Raw mode is not supported во время claude install, см. Raw mode is not supported во время установки.

Ввод содержал только пробельные символы

В неинтерактивном режиме Claude Code отклоняет промпт, состоящий только из пробелов, табуляций или переводов строк, вместо его отправки, поскольку API отклоняет сообщения без видимого текста. Какое сообщение вы увидите, зависит от того, откуда пришёл пустой промпт:
  • Аргумент промпта или stdin через конвейер для claude -p: claude завершается с Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print
  • Сообщение, отправленное в работающую сессию --input-format stream-json или Agent SDK: Claude Code завершает ход без вызова модели, и сессия остаётся пригодной к использованию. Отказ приходит как информационное сообщение и как текст результата хода: Blank prompt — the message was only whitespace, so nothing was sent to the model.
До v2.1.229 Claude Code отправлял сообщение из одних пробельных символов в API, который отклонял запрос с ошибкой 400. Что делать:
  • Включите в промпт видимый текст. Если скрипт формирует промпт из переменной или файла, проверьте, что источник не пуст, перед вызовом Claude Code.

Ввод stream-json содержал более 256M символов без перевода строки

Ваша программа отправила более 268 435 456 символов через stdin без перевода строки в запуск claude -p --input-format stream-json, поэтому Claude Code выводит эту ошибку в stderr и завершается с кодом выхода 1 вместо буферизации дальнейшего ввода. Сообщение указывает этот лимит как 256M. До v2.1.257 Claude Code буферизовал такой ввод без ограничений, увеличивая потребление памяти, пока процесс не падал или не завершался принудительно.
Ввод такой длины без перевода строки обычно означает, что источник вообще не является источником stream-json, например случайно переданный через конвейер двоичный файл или обычный вывод лога. Одно сообщение, превышающее лимит, не проходит ту же проверку. Что делать:
  • Проверьте, что передаётся в stdin. С --input-format stream-json каждое сообщение должно быть одной строкой JSON, завершающейся переводом строки
  • Чтобы отправить обычный текст, уберите --input-format stream-json; claude -p по умолчанию читает из stdin промпт в виде обычного текста

Unknown command

В интерактивной сессии терминала вы отправили имя с /, которое не соответствует ни одной команде в этой сессии, поэтому Claude Code сообщает об этом имени, ничего не выполняя:
Claude Code предлагает ближайшее имя команды или псевдоним, которые меню показывает в этой сессии. Если ничего близкого нет, сообщение заканчивается после имени. Обычно причина одна из следующих:
  • Опечатка, например /hepl вместо /help. В разделе Как меню команд сопоставляет вводимый текст описано, как выбрать близкое совпадение перед отправкой
  • Команда существует, но недоступна в этой сессии, потому что не выполнено требование, например к вашей платформе, тарифу или способу аутентификации. Разделы устранения неполадок для /web-setup и /schedule разбирают два распространённых случая. Некоторые команды отвечают собственным сообщением, когда политика вашей организации их отключает, например Cloud sessions are disabled by your organization's policy
  • Команда из плагина или MCP-сервера, который не установлен или не подключён в этой сессии
Claude Code отвечает так на несовпадающее имя с / только в интерактивной сессии терминала. В любой другой сессии он вместо этого отправляет промпт Claude как обычное сообщение с пометкой, что команда не была выполнена, и списком команд, которые Claude может выполнить в сессии. К таким сессиям относятся: Для встроенной команды, которую нельзя выполнить в одной из этих сессий, Claude Code всё равно отвечает, что команда недоступна, вместо отправки её Claude. До v2.1.274 несовпадающее имя отправляли Claude только облачные сессии и routines. До v2.1.273 они тоже отвечали Unknown command. Claude Code не считает командой каждый промпт, начинающийся с /. Он отправляет промпт Claude как обычное сообщение, если первое слово после / начинается со знака препинания, например /--, открывающего doc-комментарий Lean, или является путём, например /var/log/syslog. До v2.1.236, если вы нажимали Enter, пока меню команд показывало близкое совпадение для введённого имени, Claude Code выполнял это совпадение, поэтому опечатка вроде /hepl запускала /help вместо вывода этого сообщения. Что делать:
  • Выполните предложенное имя или введите / и часть имени, чтобы увидеть, что доступно в этой сессии
  • Если Claude Code сообщает, что задокументированная команда неизвестна, проверьте её строку в справочнике команд, где указано требование

Diff слишком велик для ultrareview

Diff между вашей веткой и базовой веткой, включая незафиксированные и подготовленные изменения, превышает лимиты размера для ultrareview, поэтому /code-review ultra и подкоманда claude ultrareview отклоняют ревью до запуска облачной сессии. Отклонённое ревью не расходует бесплатный запуск и не списывает кредиты использования. Сообщение называет действующие лимиты, размер вашего diff и файлы с наибольшим количеством изменённых строк. До v2.1.216 сообщение показывало только необработанную статистику diff.
Для ревью pull request действуют те же лимиты; такая форма сообщения начинается с PR #<N> is too large for ultrareview и называет количество файлов и строк PR. Что делать:
  • Передайте базовую ветку, более близкую к вашей работе, например /code-review ultra develop, чтобы ревью охватывало только diff относительно этой ветки
  • Разделите изменение на меньшие ветки и выполните ревью каждой. Файлы, названные в сообщении, дают больше всего изменённых строк, поэтому начните с переноса их в отдельную ветку.

Не удалось найти merge-base с базовой веткой

/code-review ultra и подкоманда claude ultrareview выполняют ревью diff между вашей веткой и базовой веткой, для чего нужен общий для них коммит. Если git merge-base его не находит, Claude Code отклоняет ревью до запуска облачной сессии. В клоне, полноту которого Claude Code может проверить и в котором есть хотя бы одна ветка, он вместо отказа переключается на ревью всех отслеживаемых файлов. Вы видите этот отказ, когда базовую ветку вообще не удаётся найти, когда Claude Code не может проверить полноту вашего клона или в редком репозитории, где diff всего дерева невозможен, например в формате объектов SHA-256.
Подсказка после первого предложения зависит от того, что обнаружил Claude Code:
  • Вы не передали базовую ветку: Claude Code сравнивал с веткой репозитория по умолчанию и предлагает явно передать вашу базовую ветку, как в примере выше
  • Вы передали базовую ветку, которая уже была в вашем клоне: подсказка гласит Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)
  • Вы передали базовую ветку, которой не было в клоне: Claude Code получил её из origin перед сравнением. Подсказка звучит как <branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`); если Claude Code не может определить, является ли клон поверхностным, он вместо этого предлагает git fetch --unshallow origin. До v2.1.221 подсказка предлагала git fetch --unshallow origin для каждой полученной базовой ветки, а в полном клоне эта команда завершается ошибкой fatal: --unshallow on a complete repository does not make sense.
Что делать:
  • Если ваша настоящая базовая ветка другая, передайте её явно: /code-review ultra <branch>
  • Если в вашем клоне может не быть полной истории, выполните git fetch --unshallow origin и снова запустите ревью

В вашем checkout нет веток

В checkout могут быть коммиты, но не быть веток: если выполнить git init, затем git fetch <url> и git checkout FETCH_HEAD, получится отсоединённый HEAD без ссылок. Claude Code упаковывает ваш репозиторий в git bundle, чтобы загрузить его для ultrareview, и не может упаковать репозиторий без веток или других ссылок, поэтому /code-review ultra и подкоманда claude ultrareview отклоняют ревью до запуска облачной сессии.
До v2.1.221 Claude Code пытался выполнить ревью всех отслеживаемых файлов в таком checkout, и загрузка завершалась с ошибкой. Что делать:
  • Создайте ветку на текущем коммите с помощью git checkout -b <name>, затем снова запустите ревью

К вашей учётной записи Claude не подключена учётная запись GitHub

Вы выполнили /code-review ultra <PR#> или claude ultrareview <PR#>, и перед созданием облачной сессии Claude Code спрашивает у сервера, может ли учётная запись GitHub, подключённая к вашей учётной записи Claude, получить доступ к репозиторию PR. Учётная запись не подключена или срок действия подключения истёк, поэтому клонирование в облаке завершилось бы с ошибкой, и Claude Code отклоняет запуск. За отклонённый запуск Claude Code не расходует бесплатный запуск и не списывает кредиты использования.
Если /web-setup недоступна в вашей сессии, сообщение называет только ссылку на claude.ai. Что делать:
  • Выполните /web-setup, чтобы подключить вход GitHub CLI к вашей учётной записи Claude, или подключите учётную запись на claude.ai/connect-github
  • Снова запустите ревью через минуту после подключения
До v2.1.248 Claude Code не проверял это перед запуском.

Подключённая учётная запись GitHub не видит репозиторий

Вы выполнили /code-review ultra <PR#> или claude ultrareview <PR#>, и учётная запись GitHub, подключённая к вашей учётной записи Claude, не может читать репозиторий PR, поэтому клонирование в облаке завершилось бы с ошибкой, и Claude Code отклоняет запуск. За отклонённый запуск Claude Code не расходует бесплатный запуск и не списывает кредиты использования.
Если /web-setup недоступна в вашей сессии, сообщение называет только установку приложения. Что делать:
  • Если ваш локальный CLI gh может читать репозиторий, выполните /web-setup, чтобы подключить этот вход к вашей учётной записи Claude
  • Снова запустите ревью после изменения
До v2.1.248 Claude Code не проверял это перед запуском.

Предварительная проверка GitHub App временно завершилась с ошибкой

Вы запустили облачную сессию из локального репозитория, и одновременно не удались два шага. Claude Code не смог собрать или загрузить bundle вашего репозитория. Перед загрузкой он проверил, может ли облачный сервис клонировать репозиторий из GitHub, и вместо определённого ответа эта проверка завершилась ошибкой, которую может устранить повторная попытка, например сетевой ошибкой, таймаутом или временной ошибкой сервера. Полное сообщение начинается с того, что помешало bundle, например Could not upload repo bundle (<error>), и заканчивается предложением о предварительной проверке:
Что делать:
  • Через некоторое время снова выполните команду. Когда проверка GitHub пройдёт, Claude Code сможет запустить сессию из клона GitHub, и неудачная загрузка больше не будет блокировать запуск
  • Если повторные попытки продолжают завершаться с ошибкой, начало сообщения называет то, что помешало загрузке. Если эту причину можно устранить, устраните её, чтобы сессия могла запуститься из вашего локального репозитория
До v2.1.251 Claude Code завершал сообщение фразой Please set up GitHub on https://claude.ai/code, даже если проверка GitHub завершалась с ошибкой лишь временно, а советы по настройке не могут устранить временный сбой.

Загрузка репозитория не может учесть настройку git

Вы запустили облачную сессию, которая загружает ваш локальный репозиторий, или ultrareview ветки, и загрузка не может учесть одну из настроек git, определяющих, какие правила атрибутов применяются к вашим файлам. Если бы загрузка продолжилась и пропустила правило, файл, который git преобразует перед сохранением, например шифруемый clean-фильтром, мог бы попасть в облако в том виде, в каком он лежит на диске. Вместо этого Claude Code отклоняет загрузку, и ничего не загружается:
Сообщение называет настройку и место, где она задана, и заканчивается решением для вашего случая. Такой же отказ появляется для core.attributesFile и attr.tree, каждый со своим решением. Сообщение может называть файл конфигурации, который ваша конфигурация git подключает через директиву include или includeIf, даже если условие этой директивы не относится к данному репозиторию. Что делать:
  • Примените решение из последнего предложения сообщения

GitHub не подключён к вашей учётной записи Claude

Вы запустили облачную сессию из локального репозитория, например с помощью /autofix-pr. К вашей учётной записи Claude не подключена учётная запись GitHub или срок действия подключения истёк, поэтому Claude Code отклоняет запуск:
Когда вы создаёте routine с помощью /schedule, то же сообщение появляется как примечание к настройке с названием репозитория; это примечание не блокирует создание routine. Что делать:
  • Выполните /web-setup, чтобы подключить вход GitHub CLI к вашей учётной записи Claude, или подключите учётную запись на claude.ai/connect-github. Чем различаются эти два способа, описано в разделе Варианты аутентификации GitHub.
  • Снова выполните команду через минуту после подключения
До v2.1.268 Claude Code сообщал об этом как о временном сбое проверки Claude GitHub App и предлагал повторить попытку или установить приложение; ни то, ни другое не подключает учётную запись GitHub.

Политика организации GitHub блокирует Claude

Вы выполнили в промпте Claude Code команду, которая запускает облачную сессию, например /autofix-pr. Перед созданием сессии Claude Code проверяет доступ Claude к репозиторию на GitHub, и GitHub отказал, потому что в вашей организации GitHub действует политика, блокирующая Claude. Claude Code на этом останавливается и показывает сообщение с названием политики. Если доступ блокирует список разрешённых IP-адресов, сообщение выглядит так:
Если доступ блокирует единый вход (single sign-on), сообщение выглядит так:
Если доступ блокирует политика условного доступа Microsoft Entra ID, сообщение выглядит так:
Что делать:
  • Список разрешённых IP-адресов: попросите владельца вашей организации или предприятия GitHub разрешить исходящие IP-адреса Anthropic. Адреса и настройки GitHub, которые нужно изменить, см. в разделе Списки разрешённых адресов GitHub и брандмауэры.
  • Единый вход: отключите GitHub на странице claude.ai/customize/connectors, затем подключите его снова. Когда GitHub спросит, нажмите Authorize рядом с вашей организацией, чтобы новое подключение было авторизовано для её единого входа.
  • Политика условного доступа: попросите администратора GitHub Enterprise или Microsoft Entra ID разрешить Claude в этой политике
  • После изменения выполните команду снова

Требуется авторизация единого входа

Вы выполнили /install-github-app и выбрали репозиторий, организация которого требует единого входа SAML. Перед настройкой Claude Code проверяет ваш доступ к репозиторию с помощью GitHub CLI, и GitHub отклонил эту проверку, потому что ваш токен gh ещё не авторизован для организации. Мастер показывает предупреждение с шагами для авторизации:
Что делать:
  • Повторно авторизуйте вход в GitHub CLI со scope repo и workflow, выполнив gh auth refresh -h github.com -s repo,workflow, и авторизуйте организацию, когда GitHub запросит единый вход
  • Если вы аутентифицируетесь с помощью персонального токена доступа в GH_TOKEN, откройте github.com/settings/tokens, выберите Configure SSO для токена и авторизуйте организацию
  • Снова выполните /install-github-app
До версии v2.1.273 Claude Code в этой ситуации вместо этого показывал предупреждение Admin permissions required.

Не удалось возобновить диалог

Claude Code не смог прочитать или обработать сохранённый транскрипт сессии, которую вы выбрали в средстве выбора claude --resume, поэтому он завершает процесс, а не продолжает работу в частично загруженном состоянии. Сообщение содержит команду для повторной попытки:
После показа сообщения Claude Code завершается с кодом 1. Средство выбора /resume внутри работающей сессии вместо этого сообщает Failed to resume conversation в диалоге, и ваша текущая сессия продолжает работать. До версии v2.1.216 неудачное возобновление из средства выбора claude --resume бесконечно оставалось на индикаторе Resuming conversation… вместо показа этого сообщения. Что делать:
  • Выполните claude --resume <session-id> с ID сессии из сообщения, чтобы повторить попытку
  • В версиях до v2.1.285, если повторная попытка завершается так же, выполните claude update и возобновите сессию снова. Эти версии не могут возобновить сессию, если сохранённый транскрипт содержит запись, которую они не могут прочитать.
  • Если повторная попытка снова не удалась, выполните claude, чтобы начать новую сессию

Не найден диалог с ID сессии

Вы передали ID сессии в claude --resume <session-id>, и ни один сохранённый транскрипт ему не соответствует:
После показа сообщения Claude Code завершается с кодом 1. Claude Code ищет ID сначала в текущем проекте, а затем во всех остальных проектах на этой машине. До версии v2.1.223 поиск ограничивался текущим каталогом проекта и его git worktree, поэтому возобновляйте сессию из каталога, в котором она работала последней. Распространённые причины:
  • Опечатка в ID: для неинтерактивного запуска ID — это поле session_id в выводе --output-format json
  • Удалённый транскрипт: Claude Code удаляет транскрипты по истечении срока хранения, по умолчанию 30 дней, в соответствии с правилами очистки
  • Другая машина: Claude Code хранит транскрипты локально, поэтому возобновляйте сессию на той машине, где она выполнялась
  • Дублирующиеся копии: если вы скопировали каталог проекта в ~/.claude/projects так, что два транскрипта имеют одинаковый ID, Claude Code выводит это сообщение, а не возобновляет произвольно выбранную копию
Что делать:
  • Для интерактивной сессии откройте средство выбора сессий с помощью claude --resume и нажмите Ctrl+A, чтобы расширить его до всех проектов на этой машине, затем выберите сессию
  • Сессии, созданные с помощью claude -p или Agent SDK, не отображаются в средстве выбора, поэтому перепроверьте ID по значению session_id, которое вывел исходный запуск

Windows сообщила об ошибке (EBADF), когда Claude Code читал файл транскрипта этой сессии

Вы возобновили сессию в Windows, её сохранённый файл транскрипта открылся нормально, но затем чтение завершилось системной ошибкой EBADF. Системная ошибка не объясняет, почему чтение не удалось, поэтому сообщение предлагает вероятные причины и что можно попробовать:
Сообщение следует за собственной строкой ошибки команды, например Failed to resume session <session-id>. Команда claude --resume или claude -p после его показа завершается с кодом 1. После /resume внутри сессии ваша текущая сессия продолжает работать. Что делать:
  • Исключите папку с транскриптами сессий из обработки программами, которые сканируют или перехватывают чтение файлов, например средствами безопасности, шифрования или управления конечными точками. По умолчанию транскрипты находятся в %USERPROFILE%\.claude\projects или в каталоге, указанном в CLAUDE_CONFIG_DIR
  • Если добавить исключение невозможно, добавьте вместо этого Claude Code в список разрешённых приложений этой программы
  • Снова возобновите сессию
До версии v2.1.282 ошибка не сопровождалась объяснением: claude --resume <session-id> завершался на Failed to resume session <session-id>, а запуск с -p выводил только текст системной ошибки, например Failed to resume session: EBADF: bad file descriptor, read.

Невозможно переключить рендерер в этой сессии

При переключении рендерера Claude Code перезапускает свой процесс. Вы выполнили /tui в сессии, которую Claude Code отказывается перезапускать, поэтому он не переключается и ничего не сохраняет. Причину можно определить по тому, какое сообщение вы видите:
  • Cannot switch renderers while work is running in the background: у вас выполняется фоновая работа, которую перезапуск прервал бы, например фоновая оболочка или субагент. Дождитесь завершения работы или остановите её с помощью /tasks, затем снова выполните /tui fullscreen или /tui default
  • Cannot switch renderers in this session: у сессии есть ограничения, которые Claude Code не может передать перезапущенному процессу. До версии v2.1.234 Claude Code всё равно выполнял перезапуск, и перезапущенная сессия работала без них
В сообщении об ограничениях часть в скобках называет ограничения, которые обнаружил Claude Code:
Каждая причина, которую сообщение может показать в скобках:
  • launch flags: a custom system prompt, a tool allowlist, or restricted settings: вы запустили сессию с флагом, который Claude Code не передаёт обратно перезапущенному процессу. К таким флагам относятся --system-prompt, --system-prompt-file, --append-system-prompt-file, список разрешённых инструментов --tools, --setting-sources и --permission-prompt-tool
  • permission rules set for this session only: обновление разрешений от хука или вызывающей стороны SDK добавило правила запрета или запроса с назначением session. Правила разрешения с областью действия сессии не вызывают отказа. Перезапуск их отбрасывает, и Claude Code вместо этого снова запрашивает подтверждение
  • ask-before-running rules with no command-line form: обновление разрешений от хука или вызывающей стороны SDK добавило правила запроса наряду с правилами, которые Claude Code передаёт обратно как --allowed-tools и --disallowed-tools. Флага для правил запроса не существует
  • permission rules a command line cannot carry intact и added directories a command line cannot carry intact: обновление разрешений добавило правило или путь к каталогу в ходе сессии. Командная строка перезапущенного процесса не может передать этот текст как то же самое значение
Что делать:
  • В сессии, запущенной без этих ограничений, выполните /tui fullscreen или /tui default, чтобы переключиться обратно. Claude Code сохранит там настройку tui

Claude Code couldn’t restart

Если в этом сообщении сказано, что ваш диалог сохранён, значит, диалог находится на диске и вы можете продолжить его с того места, где он остановился. Claude Code перезапускал себя, например, чтобы переключиться на полноэкранный рендеринг или обратно после выполнения /tui, и не смог запустить новый процесс, поэтому завершился со статусом 1:
Если при перезапуске не было диалога для повторного открытия, например потому что /tui был вашим первым вводом в новой сессии, сообщение выглядит так: Claude Code couldn't restart. Start Claude Code again. Что делать:
  • Снова выполните claude в своей оболочке. Если в сообщении сказано, что ваш диалог сохранён, выполните /resume в новой сессии и выберите диалог. Если его нет в списке, расширьте средство выбора сессий
  • Если перезапуски продолжают завершаться ошибкой, запустите Claude Code из оболочки командой claude --debug-file claude-debug.log. Если перезапуск из этой сессии не удастся, файл claude-debug.log в каталоге запуска будет содержать строку Failed to relaunch: с ошибкой операционной системы. Приложите эту строку, когда будете сообщать о проблеме

Не удалось открыть Claude Desktop

Вы выполнили /desktop или его псевдоним /app в сессии либо claude --desktop в оболочке, и системная команда, которую Claude Code использует для открытия Claude Desktop, завершилась ошибкой. После /desktop сессия остаётся в терминале; claude --desktop выводит сообщение без префикса Error: и завершается со статусом 1. Текст в скобках называет команду, завершившуюся ошибкой, с её кодом завершения и первой строкой вывода ошибок, если она их выдала. В macOS это команда open, как в этом примере; в Windows — rundll32:
Что делать:
  • Откройте Claude Desktop самостоятельно, затем снова выполните /desktop или claude --desktop
  • Чтобы прочитать полный вывод ошибок неудавшейся команды, включите отладочное логирование с помощью /debug и снова выполните /desktop или выполните claude --desktop --debug-file <path>, затем проверьте отладочный лог
До версии v2.1.285 сообщение заканчивалось словами Open Claude Desktop and run /desktop again. До версии v2.1.275 оно выглядело как Failed to open Claude Desktop. Please try opening it manually. и не сообщало, что именно не удалось.

/terminal-setup оставил вашу раскладку клавиш Zed без изменений

Вы выполнили /terminal-setup в Zed, и Claude Code не смог завершить обновление вашего файла Zed keymap.json, поэтому оставил файл как есть. Каждое сообщение указывает путь к вашей раскладке клавиш и заканчивается блоком сочетания клавиш, который нужно добавить самостоятельно:
Первая строка сообщения называет причину:
  • Couldn't read your Zed keymap, so it was left unchanged.: Claude Code не смог прочитать файл, например из-за прав доступа к файлу
  • Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.: файл прочитан успешно, но не разбирается как массив блоков сочетаний клавиш, даже с учётом допустимых комментариев // и завершающих запятых
  • Couldn't back up your Zed keymap; not modifying it.: Claude Code не смог скопировать файл в резервную копию .bak рядом с ним, поэтому ничего не изменил
  • Couldn't update your Zed keymap, so it was left unchanged.: объединённый результат не прошёл проверку как корректная раскладка клавиш, содержащая сочетание, поэтому Claude Code отбросил его вместо записи. Причиной может быть блок сочетаний клавиш с повторяющимся ключом
Что делать:
  • Скопируйте блок из сообщения в массив верхнего уровня в вашем keymap.json по пути, указанному в сообщении
  • Для isn't a readable list of keybindings исправьте синтаксическую ошибку или сделайте значение верхнего уровня файла массивом, затем снова выполните /terminal-setup
До версии v2.1.247 /terminal-setup не мог разобрать раскладку клавиш Zed, в которой использовались комментарии // или завершающие запятые, и заменял весь файл только своим сочетанием клавиш, сообщая при этом, что сочетание установлено. Чтобы восстановить раскладку клавиш, заменённую более ранней версией, используйте резервный файл .bak, описанный в разделе Ввод многострочных промптов.

Отчёты об использовании скиллов недоступны в этом подключении

Вы выполнили /skill-doctor через Remote Control с телефона или из браузера. Claude Code не отправляет отчёт об использовании скиллов через Remote Control и вместо этого отвечает таким сообщением:
Что делать:
  • Выполните /skill-doctor в терминале на машине, где работает сессия, или выполните там claude -p "/skill-doctor"

Пользовательские стили вывода нельзя выбрать через Remote Control

Вы выполнили /output-style из мобильного приложения или веб-интерфейса через Remote Control, либо команда пришла в сообщении, переданном в сессию. Поскольку такой ход может исходить не от владельца учётной записи, Claude Code показывает и позволяет выбрать в нём только встроенные стили и добавляет это уведомление всякий раз, когда команда выводит список стилей или не распознаёт указанное вами имя. На имя пользовательского стиля выдаётся тот же ответ, что и на несуществующее имя:
Что делать:
  • Выберите встроенный стиль, например /output-style concise
  • Чтобы использовать пользовательский стиль, задайте outputStyle в файле .claude/settings.local.json проекта или выполните /output-style <style> в собственном терминале сессии, если он у неё есть

Стили вывода сохраняются в локальные настройки, которые эта сессия не загружает

Вы попытались переключить стиль вывода с помощью /output-style <style> или /config outputStyle=<style> в сессии, источники настроек которой не включают local. Примеры — сессия Agent SDK, у которой settingSources не содержит "local", и сессия CLI, запущенная со значением --setting-sources, не включающим local. Обе команды сохраняют стиль в .claude/settings.local.json — файл, который такая сессия никогда не читает, поэтому Claude Code отказывается, а не записывает настройку, которая не будет иметь эффекта:
Что делать:
  • Добавьте local в источники настроек сессии и переключите стиль снова
  • Задайте ключ outputStyle в файле настроек, который сессия загружает, например в .claude/settings.json в проекте или в ~/.claude/settings.json. В TypeScript SDK вместо этого задайте outputStyle внутри встроенного объекта settings; см. Активация стиля вывода

/recap выполняется, только когда вы запрашиваете его сами

Запрос /recap поступил не из вашего собственного ввода. Он пришёл в сообщении, переданном в сессию из ветки Slack, Teams или проекта, либо в промпте, который отправила routine или другая программа. Переданное сообщение получает это уведомление, даже если вы написали его сами. Claude Code не может определить, что переданное или автоматическое сообщение исходит от человека, под чьей учётной записью работает сессия, поэтому вместо сводки отвечает этим уведомлением:
/recap, который вы передаёте в claude -p или который ваше собственное приложение на Agent SDK отправляет в запущенную им сессию, считается вашим собственным вводом. Что делать:

Ошибки плагинов

Эти ошибки связаны с конфигурацией плагинов и маркетплейсов. Проблемы с плагинами, которые не приводят ни к одному из сообщений на этой странице, например URL маркетплейса, который не загружается, или плагин, который устанавливается, но не появляется, описаны в разделе Устранение неполадок плагинов.

plugin eval is currently in early access

Вы запустили claude plugin eval или claude plugin eval init, и команда завершилась с кодом 1 с одним из этих сообщений, ничего не выполнив:
Первое сообщение означает, что ваша сборка старше v2.1.269 — первой версии, в которой команда общедоступна. Второе означает, что Anthropic отключила команду на стороне сервера; ничто на вашем компьютере не включит её обратно. Что делать:
  • Выполните claude --version, затем claude update и снова запустите команду в новой сессии. См. требования к оценкам плагинов
  • Если вы видите второе сообщение в актуальной сборке, повторите попытку позже после очередного claude update

Маркетплейс зарегистрирован из недоверенного источника

Маркетплейс зарегистрирован под именем, которое зарезервировано для официальных маркетплейсов Anthropic, но его зарегистрированный источник не является репозиторием GitHub организации anthropics. Claude Code заново проверяет зарезервированные имена каждый раз при загрузке или обновлении маркетплейса, поэтому маркетплейс и установленные из него плагины перестают загружаться. До v2.1.205 запись, зарегистрированная до того, как её имя стало зарезервированным, продолжала загружаться.
Для маркетплейса, источник которого не является репозиторием GitHub или Git URL, например для локального каталога, среднее предложение вместо этого звучит как can only be used with GitHub sources from the 'anthropics' organization. claude plugin marketplace add выполняет ту же проверку и отклоняет зарезервированное имя с сообщением Failed to add marketplace:, за которым следует то же предложение о зарезервированном имени. Что делать:
  • Если маркетплейс уже зарегистрирован, выполните claude plugin marketplace remove <name>, затем добавьте его снова из официального репозитория github.com/anthropics
  • Если вы публикуете сторонний маркетплейс, который использовал это имя до того, как оно стало зарезервированным, переименуйте его и попросите пользователей добавить его заново из вашего источника
  • Список зарезервированных имён см. в разделе Схема маркетплейса

Имя маркетплейса — другое написание зарезервированного имени

Имя маркетплейса само по себе не является зарезервированным, но Claude Code считает его другим написанием зарезервированного имени. В разделе Зарезервированные имена перечислено, какие написания считаются зарезервированным именем. Claude Code отклоняет такое имя при добавлении маркетплейса:
Если маркетплейс уже зарегистрирован под таким именем, его запись перестаёт загружаться, а /plugin, claude plugin install и claude plugin update выводят предупреждение:
Если имя потребовало бы экранирования в оболочке, отказ при добавлении звучит как This marketplace's name is another spelling of "<reserved>", a reserved marketplace name. It is not exactly the reserved name it appears to be. Что делать:
  • Переименуйте маркетплейс так, чтобы имя не было написанием зарезервированного имени, и добавьте его снова
  • В случае предупреждения об игнорируемой записи выполните указанную в нём команду claude plugin marketplace remove или удалите запись из ~/.claude/plugins/known_marketplaces.json

Claude Code отклоняет имя маркетплейса

Имя зарегистрированного маркетплейса выдаёт себя за официальный маркетплейс Anthropic по правилам, перечисленным в том разделе. Если маркетплейс был зарегистрирован под таким именем до того, как проверка стала его блокировать, маркетплейс и установленные из него плагины перестают загружаться, потому что Claude Code проверяет имя каждый раз при чтении каталога маркетплейса. Если имя имитирует официальное, claude plugin list и вкладка Errors в /plugin сообщают о каждом затронутом плагине сообщением, которое начинается так:
Для имитирующего имени собственная ошибка маркетплейса вместо этого звучит как Claude Code refuses this marketplace's name: it looks like one of Anthropic's own. claude plugin marketplace add отклоняет любое имя, выдающее себя за официальное, с сообщением Marketplace name impersonates an official Anthropic/Claude marketplace. До v2.1.282 claude plugin list и /plugin также сообщали, что плагины маркетплейса с имитирующим именем не удалось загрузить, но не указывали имя маркетплейса как причину. Что делать:
  • Чтобы сохранить маркетплейс, который файл настроек объявляет встроенно с "source": "settings", переименуйте его до удаления старого имени, потому что удаление маркетплейса также удаляет его запись из ваших файлов настроек. Claude Code v2.1.292 или новее перечисляет эти шаги в сообщении:
    1. В каждом файле настроек, где маркетплейс указан в extraKnownMarketplaces, задайте ключу записи и её source.name одно новое имя из простых ASCII-символов, которое не похоже на официальное. Если администратор добавляет маркетплейс через управляемые настройки вашей организации, этот шаг выполняет администратор
    2. Выполните claude plugin marketplace remove <old-name> или удалите старое имя на вкладке Marketplaces в /plugin. Это также удаляет его плагины и их данные, параметры и секреты
    3. Снова запустите Claude Code — в папке проекта, если файл является файлом настроек проекта. Затем установите плагины из переименованного маркетплейса
  • Чтобы сохранить любой другой маркетплейс, дождитесь, пока его сопровождающий переименует его, затем выполните claude plugin marketplace update <name>
  • Чтобы удалить маркетплейс, выполните claude plugin marketplace remove <name>. Это также удаляет установленные из маркетплейса плагины и их данные, параметры и секреты
  • Если вы публикуете маркетплейс, переименуйте его в своём marketplace.json; тогда пользователи обновят маркетплейс, а не удалят его

Маркетплейс уже добавлен из другого источника

Вы указали новый источник маркетплейса с помощью --marketplace <source> в команде установки — в сессии или из оболочки. Каталог, который Claude Code получил из этого источника, имеет то же имя, что и маркетплейс, уже добавленный вами из другого источника. Claude Code сохраняет существующий маркетплейс вместо его замены, и плагин не устанавливается.
Что делать:
  • Если нужен уже добавленный маркетплейс, установите из него плагин по имени: /plugin install <plugin>@<name>
  • Чтобы переключиться на новый источник, выполните /plugin marketplace remove <name>, затем повторите попытку установки

Команда плагина ссылается на user_config в shell-команде

Команда хука плагина, монитора или MCP headersHelper ссылается на параметр плагина ${user_config.KEY}, и строка после подстановки была бы передана оболочке. Настроенное значение, содержащее $(...), обратные кавычки или ;, выполнилось бы там как код, поэтому Claude Code отказывается запускать компонент вместо подстановки значения. Проверка выполняется по шаблону команды, поэтому ошибка появляется, даже когда значение ещё не настроено. До v2.1.207 значение подставлялось в shell-команду. Формулировка зависит от того, в каком месте используется ссылка на параметр. Хук в shell-форме сообщает:
Монитор сообщает:
MCP headersHelper сообщает:
Что делать:
  • Для хука добавьте массив args, чтобы он выполнялся в exec-форме, где каждый ${user_config.KEY} становится одним аргументом без участия оболочки. Или уберите ссылку и читайте переменную окружения $CLAUDE_PLUGIN_OPTION_<KEY> внутри скрипта
  • Для монитора уберите ссылку, и пусть скрипт монитора читает значение из файла конфигурации
  • Для headersHelper перенесите ${user_config.KEY} в поле headers сервера, которое не разбирается оболочкой, или читайте значение внутри вспомогательного скрипта

Проверка целостности архива плагина не пройдена

Запись плагина в маркетплейсе использует источник archive с закреплённым sha256, и хеш загруженного файла не совпадает с закреплённым значением. Claude Code отказывается от установки, поэтому в кэше плагинов ничего не меняется. У несовпадения три возможные причины:
  • Файл по URL изменился после того, как автор вычислил закреплённое значение
  • Автор указал неверный хеш в записи маркетплейса
  • URL отдаёт не тот файл, который закрепил автор
Что делать:
  • Если вы публикуете плагин, заново вычислите хеш именно того файла, который отдаёт URL, например с помощью shasum -a 256 my-plugin.zip или Get-FileHash -Algorithm SHA256 my-plugin.zip в PowerShell, и обновите sha256 в записи маркетплейса
  • Если вы устанавливаете плагин, выполните /plugin marketplace update <name>, чтобы обновить каталог на случай, если запись исправили, затем повторите попытку установки
  • Если хеши по-прежнему не совпадают после обновления, перед установкой спросите владельца маркетплейса, какой файл он закрепил

Путь выходит за пределы каталога плагина

Путь компонента плагина, объявленный в plugin.json плагина или в его записи маркетплейса, указывает за пределы собственного каталога плагина. Claude Code отбрасывает этот путь и загружает остальную часть плагина. Имя компонента в сообщении, например commands или hooks, указывает поле, в котором объявлен путь.
В выводе команд claude plugin та же ошибка звучит как Path escapes plugin directory: ./../shared.md (commands). Claude Code отклоняет как путь, который в записанном виде указывает за пределы плагина, например ../shared-utils, так и символическую ссылку, которая ведёт за пределы плагина и не разрешена правилами символических ссылок маркетплейса. Для символической ссылки сообщение также указывает, куда разрешается путь:
В macOS и Linux Claude Code также отклоняет путь компонента, содержащий обратную косую черту в любом месте, даже если путь остаётся внутри плагина. Плагин, пути компонентов которого используют разделители в стиле Windows, загружается в Windows и вызывает этот отказ на других платформах:
До v2.1.251 Claude Code загружал путь commands, объявленный в записи маркетплейса, даже если он указывал за пределы каталога плагина. До v2.1.257 проверка учитывала только написание пути, а не то, куда ведёт символическая ссылка. Что делать:
  • Переместите указанный файл внутрь каталога плагина и укажите на него относительным путём с ./
  • Если путь — символическая ссылка на файл вне плагина, замените символическую ссылку копией файла
  • Если в сообщении сказано, что путь содержит обратную косую черту, запишите путь с прямыми косыми чертами, например ./commands/deploy.md
  • Чтобы совместно использовать файлы с другими плагинами того же маркетплейса, свяжите их символической ссылкой внутри каталога плагина, следуя правилам символических ссылок

Путь не удалось проверить

Claude Code запросил у операционной системы, существует ли путь плагина, и получил ошибку, отличную от «не найдено», поэтому не загружает то, на что указывает путь. Какая часть плагина загрузится, зависит от того, какой путь не прошёл проверку: Для пути, который вообще не существует, эта ошибка не появляется. В /plugin ошибка отображается под плагином и указывает путь и код, который вернула операционная система:
В claude plugin list та же ошибка звучит как Path not found: /home/user/my-plugin/skills (skills, ELOOP). К причинам этой ошибки относятся:
  • ELOOP: символическая ссылка в пути указывает сама на себя или образует цикл
  • EIO или ESTALE: путь находится на сетевом подключении, которое повреждено или устарело
  • EACCES: один из каталогов выше пути не даёт вам прав доступа для его прохождения
Что делать:
  • Замените символическую ссылку, указывающую сама на себя, настоящей папкой или удалите её
  • Если путь находится на сетевом подключении, переподключите общий ресурс
  • Если код — EACCES, восстановите право на выполнение для каталогов выше пути
  • После исправления пути выполните /reload-plugins или перезапустите Claude Code, чтобы загрузить плагин или компонент
До v2.1.265 Claude Code считал папку компонента по умолчанию, которую не удалось проверить, отсутствующей и загружал плагин без этого компонента, не выводя ошибку.

Путь записи маркетплейса не остаётся внутри каталога маркетплейса

Запись маркетплейса плагина объявляет путь источника, который Claude Code не может разрешить в расположение внутри собственного каталога маркетплейса, поэтому плагин не устанавливается и не загружается. Отказ распространяется на:
  • Путь записи, который является абсолютным, выходит за пределы маркетплейса с помощью .. или записан как сетевой путь
  • В macOS и Linux — путь записи, содержащий обратную косую черту в любом месте после начального ./
  • Запись в маркетплейсе, полученном из удалённого источника, например git или URL, которая достигает цели через символическую ссылку, разрешающуюся за пределы каталога маркетплейса
  • Относительную запись в маркетплейсе, добавленном по прямому URL на его marketplace.json: Claude Code загружает только этот файл, поэтому локальных файлов плагина, на которые мог бы указывать путь, нет. См. Плагины с относительными путями не работают в маркетплейсах на основе URL
claude plugin install сообщает об отказе так:
Если запись уже установленного плагина не проходит ту же проверку, claude plugin list показывает плагин как failed to load с сообщением:
Что делать:
  • Если вы сопровождаете маркетплейс, запишите source записи как простой относительный путь с прямыми косыми чертами, например ./plugins/my-plugin, и следите, чтобы любая символическая ссылка на этом пути указывала внутрь каталога маркетплейса
  • Если вы добавили маркетплейс по прямому URL, относительные записи не могут быть разрешены. Попросите автора маркетплейса использовать другой источник плагина или вместо этого добавьте маркетплейс из его git-репозитория

Failed to load marketplace configuration

Claude Code хранит добавленные вами маркетплейсы плагинов в файле реестра ~/.claude/plugins/known_marketplaces.json. Команда плагина, которой нужен реестр, например claude plugin install, завершается одним из двух сообщений, если Claude Code не может использовать этот файл:
  • Failed to load marketplace configuration: файл существует, но не является допустимым JSON или не может быть прочитан. Пустой файл также приводит к этой ошибке.
  • Marketplace configuration file is corrupted: файл является допустимым JSON, но его содержимое не соответствует схеме реестра.
С пустым файлом claude plugin install сообщает:
До v2.1.246 claude plugin install не сообщал об этой ошибке. Что делать:
  • Откройте ~/.claude/plugins/known_marketplaces.json и исправьте JSON или исправьте записи, которые в сообщении указаны как не соответствующие схеме реестра
  • Если исправить файл не удаётся, удалите его или замените его содержимое на {}, затем заново добавьте каждый маркетплейс с помощью claude plugin marketplace add <source>. Claude Code повторно регистрирует маркетплейсы, объявленные в ваших пользовательских или управляемых настройках в extraKnownMarketplaces, при следующем запуске в папке, которой вы доверяете.

Плагин обязателен в вашей организации

Вы выполнили claude plugin disable или использовали вкладку Installed в /plugin, чтобы отключить плагин, синхронизированный из claude.ai, который ваша организация отметила как обязательный:
Claude Code ничего не сохраняет, и плагин остаётся включённым. При попытке отключить плагин, от которого зависит обязательный плагин, Claude Code отказывает так же, с сообщением, в котором указан обязательный плагин, которому он нужен. Что делать:
  • Попросите администратора вашей организации claude.ai изменить статус обязательности плагина на claude.ai

Плагин не был удалён

Вы выполнили claude plugin uninstall или выбрали Uninstall на вкладке Installed в /plugin, и удаление остановилось с сообщением, начинающимся с "<plugin>" was not uninstalled:. Если текст после двоеточия начинается с installed_plugins.json, а не с имени файла настроек, причина — содержимое installed_plugins.json, которое эта версия Claude Code не может прочитать. Для этого варианта см. installed_plugins.json содержит запись, которую эта версия не может прочитать. Когда Claude Code удалил запись плагина из enabledPlugins и заново прочитал файлы настроек этой области действия, либо плагин всё ещё оказался включён там, либо файл, который мог бы его включить, не удалось прочитать или проверить. Удаление сохранённых параметров, секретов и данных плагина, пока запись в настройках может снова его включить, привело бы к их потере, поэтому удаление останавливается: плагин остаётся установленным, и ничего из сохранённого им не удаляется.
Средняя часть сообщения указывает файл и причину:
  • it is still switched on in <file>, although the settings change reported no error: запись настроек сообщила об успехе, но при повторном чтении файла запись всё ещё там
  • it is still switched on in <file>, and the settings change failed (<error>): файл не удалось сохранить по причине, указанной в скобках
  • <file> is there and could not be read: файл существует, но его не удалось прочитать как настройки, например потому что он не является допустимым JSON, поэтому он всё ещё может включать плагин
  • <file> (not read: it is on a network path or is a link to one, or could not be checked): Claude Code не прочитал файл настроек проекта или локальных настроек, потому что этот файл или содержащая его папка .claude является ссылкой, ведущей в сетевое расположение, или потому что не удалось проверить этот путь
claude plugin uninstall завершается с кодом 1, а с --json результат содержит failureCode: "settings_still_on". /plugin показывает то же сообщение. Что делать:
  • Следуйте последнему предложению сообщения: исправьте или замените указанный файл настроек либо самостоятельно удалите запись плагина из enabledPlugins в этом файле, затем снова выполните удаление

Ошибки инструментов

Эти ошибки возникают при вызовах инструментов Claude. Claude самостоятельно исправляет большинство ошибок инструментов. Когда требуется изменение с вашей стороны, список Что делать для этой ошибки указывает, что нужно изменить.

No such tool available

Claude вызвал инструмент по имени, которого нет в списке инструментов сессии. Claude Code возвращает ошибку Claude как результат вызова инструмента, и ход продолжается. Когда Claude Code может определить, почему инструмент отсутствует, он добавляет после имени инструмента предложение, которое указывает причину или называет инструмент, который следует вызвать вместо этого, как во второй строке:
Сразу после возобновления сессии MCP-сервер может всё ещё выполнять первую попытку подключения, когда Claude вызывает один из его инструментов. В этом случае Claude Code ожидает сервер и возвращает эту ошибку, если по окончании ожидания инструмент всё ещё недоступен. До версии 2.1.284 такой вызов сразу завершался ошибкой вместо ожидания. Вызов, имя инструмента в котором Claude Code обрезал до 200 символов, также завершается этой ошибкой. Что делать:
  • Если это произошло один раз, ничего делать не нужно. Claude читает ошибку, и ход продолжается.
  • Если вызовы инструментов MCP-сервера продолжают завершаться этой ошибкой, выполните /mcp в сессии или claude mcp list в оболочке, чтобы проверить статус сервера, и переподключите сбойный сервер из /mcp. Для Agent SDK см. Обработка ошибок.

Agent would be spawned with zero tools

Каждая запись в списке tools субагента не соответствовала ни одному используемому инструменту, поэтому Claude Code отказался запускать субагента: без инструментов он не мог действовать. Сообщение группирует ваши записи по причине ошибки:
  • Unrecognized: запись не соответствует ни одному имени инструмента, обычно это опечатка, например Grpe вместо Grep.
  • Not available to subagents: запись называет реальный инструмент, который субагенты не могут использовать. Фоновые субагенты имеют меньший встроенный набор инструментов, поэтому запись, которую может использовать только субагент переднего плана, попадает сюда, когда субагент будет работать в фоне, что является значением по умолчанию. Если вы указываете Agent, сообщение относит его к следующей группе.
  • Matched no tools in this session: запись действительна, но ни один инструмент в текущей сессии не соответствует ей прямо сейчас, например mcp__github__* без подключённого MCP-сервера GitHub или Agent для субагента на пределе глубины.
Пропуск поля tools никогда не вызывает этот отказ. Если вы оставляете список tools пустым или disallowedTools удаляет каждую запись в нём, Claude Code также пропускает отказ и запускает субагента без инструментов. До версии 2.1.208 субагент запускался без инструментов и мог вернуть пустой или запутанный результат.
Что делать:
  • Исправьте каждую запись, которую называет ошибка, в соответствии с инструментами, доступными субагентам
  • Удалите записи для инструментов, которых нет в сессии, например инструменты MCP с MCP-сервера, который не подключён
  • Для инструмента, который фоновые субагенты отбрасывают, например CronCreate, удалите запись. Чтобы сохранить инструмент, отключите режим fork и попросите Claude запустить субагента на переднем плане
  • Удалите поле tools вместо перечисления инструментов, чтобы дать субагенту каждый инструмент, доступный субагентам
  • Для списка tools, содержащего только Agent, повысьте предел глубины или дайте агенту хотя бы один другой инструмент: Claude Code скрывает Agent на этом пределе, поэтому список, в котором больше ничего нет, разрешается в отсутствие инструментов

File is covered by a Read deny rule

Инструмент Edit или Write был вызван для пути, соответствующего запрещающему правилу Read, включая создание нового файла по этому пути. Оба инструмента изменяют содержимое, которое Claude должен иметь возможность прочитать обратно, поэтому Claude Code отклоняет вызов до любого доступа к файлу. NotebookEdit не охватывается запрещающими правилами Read. До версии 2.1.228 правило блокировало только инструмент Edit, а до версии 2.1.208 редактирование блокировало только запрещающее правило Edit.
Когда Claude Code отклоняет вызов инструмента Write, сообщение вместо этого заканчивается на and cannot be written. Что делать:
  • Если Claude должен иметь возможность изменять файл, удалите или сузьте запрещающее правило Read в /permissions или в настройках
  • Если файл должен остаться нетронутым, сохраните правило и добавьте запрещающее правило Edit для того же пути, чтобы также заблокировать инструмент NotebookEdit

Path cannot contain null bytes

Аргумент пути или шаблона в вызове файлового инструмента содержал нулевой байт, который файловые системы и инструменты поиска не могут принять. Read, Write, Edit, NotebookEdit, Glob и Grep проверяют это, и сообщение называет инструмент и аргумент:
Вызов инструмента завершается ошибкой, Claude видит её, и ход продолжается. Что делать:
  • Ничего с вашей стороны: ошибка возвращается Claude как результат инструмента, и само сообщение говорит Claude удалить нулевой байт и повторить попытку
До версии 2.1.281 нулевой байт в пути Read, Write, Edit или NotebookEdit завершал весь ход с ошибкой Path contains null bytes, и инструмент так и не запускался.

subagent_type is required

Claude вызвал инструмент Agent без subagent_type, и в этой сессии нет универсального субагента, который можно было бы использовать по умолчанию. Это происходит в двух конфигурациях: Что делать:
  • Обычно ничего: сообщение перечисляет субагентов, которые есть в сессии, поэтому Claude может повторить попытку с одним из них
  • Если Claude продолжает терпеть неудачу, добавьте general-purpose в список разрешённых tools: Agent(...) или удалите переменную CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS
До версии 2.1.235 тот же вызов завершался ошибкой Agent type 'general-purpose' not found.

Memory index is over its read limit

Claude записал в индекс автоматической памяти MEMORY.md и оставил его сверх одного из пределов чтения: 200 строк или 25 КБ. Запись прошла успешно, но в начале сессии загружаются только первые 200 строк или 25 КБ, в зависимости от того, что наступит раньше, поэтому всё, что находится за пределом, отбрасывается при каждом чтении индекса. До версии 2.1.210 индекс, превышающий лимит, молча усекался при следующей загрузке без какого-либо сигнала во время записи.
В пределах учитывается только загружаемое содержимое. Frontmatter YAML и блочные комментарии HTML удаляются перед загрузкой индекса, поэтому они исключаются из измерения. До версии 2.1.211 Claude Code измерял исходный файл, и frontmatter или комментарии могли вызвать эту ошибку, даже когда загружаемое содержимое укладывалось в лимит. Claude Code передаёт ошибку Claude после записи, а не выводит её как баннер в вашем терминале, поэтому вы можете заметить её только в транскрипте. Когда запись Claude приближает файл к пределу, не превышая его, Claude Code вместо этой ошибки возвращает более мягкое напоминание о сжатии индекса. Что делать:
  • Позвольте Claude переписать MEMORY.md или попросите его об этом: одна строка на запись, детали — в тематические файлы, устаревшие записи объединить или удалить
  • Чтобы сократить индекс самостоятельно, см. Аудит и редактирование памяти

pkill pattern matches the Claude Code process

Команда pkill в вызове инструмента Bash использовала шаблон, обычно с -f, который соответствует самому процессу Claude Code, поэтому Claude Code отклоняет команду, вместо того чтобы позволить ей завершить сессию. Claude Code проверяет шаблон с помощью pgrep перед запуском pkill и отклоняет команду, когда в результате есть его собственный ID процесса. Проверка выполняется только в Linux; в macOS pkill выполняется без изменений. До версии 2.1.214 команда выполнялась, и совпадающий шаблон завершал сессию Claude Code посреди хода.
Отказ появляется в результате инструмента Bash, а не как баннер в вашем терминале, и Claude обычно самостоятельно корректирует команду. Что делать:
  • Сузьте шаблон так, чтобы он соответствовал только нужному процессу, например полному пути целевого двоичного файла, а не короткой подстроке
  • Чтобы остановить процессы, запущенные текущей оболочкой, используйте pkill -P $$ с шаблоном, что ограничивает совпадение дочерними процессами оболочки

Failed to write to a teammate’s inbox

Claude Code не смог записать сообщение в файл почтового ящика участника команды в ~/.claude/teams/{team-name}/inboxes/, поэтому получатель ничего не получил. Запись завершается ошибкой, когда Claude Code не может создать или обновить файл, например потому что диск заполнен, каталог недоступен для записи или другой агент слишком долго удерживает блокировку почтового ящика. До версии 2.1.224 Claude Code сообщал, что сообщение отправлено, даже когда запись завершалась ошибкой. Ошибка появляется в результате инструмента отправляющего агента, а не как баннер в вашем терминале, и её текст говорит Claude повторить попытку:
Структурированные сообщения протокола команды агентов завершаются ошибкой так же, и ошибка называет недоставленное сообщение: когда Claude Code не может записать утверждение плана, отклонение плана, запрос на завершение или отклонение завершения, ошибка выглядит как Failed to write the <message> to <name>'s inbox — nothing was sent. plan approval в этом списке — это решение лидера, утверждающее план участника команды; отправка плана участником команды — это отдельное сообщение plan approval request. Это сообщение и два других сообщения протокола имеют собственный текст и последствия:
  • Failed to write the plan approval request to the lead's inbox — plan not submitted; try again: план участника команды не дошёл до лидера, и участник команды остаётся в режиме планирования до успешной повторной отправки
  • The permission request could not be delivered to the team lead (mailbox write failed): запрос разрешения участника команды не дошёл до лидера, поэтому никто не подтвердил вызов инструмента
  • The confirmation could not be written to team-lead's inbox.: само подтверждение завершения вступило в силу, и участник команды завершает работу; отсутствует только подтверждение для лидера
Когда вы сами отправляете сообщение участнику команды, вводя @name и затем сообщение в сессии лидера, та же ошибка появляется как уведомление Couldn't write to @name's inbox — message not sent. Try again., и Claude Code сохраняет ваш текст в поле ввода промпта, чтобы вы могли отправить его снова. Что делать:
  • Попросите отправителя повторно отправить сообщение; конкуренция за блокировку почтового ящика временна и устраняется при повторной попытке
  • Проверьте свободное место на диске и убедитесь, что ~/.claude/teams и файлы в нём доступны для записи вашему пользователю

Teammate’s agent definition was not restored

Claude отправил сообщение остановленному участнику команды агентов, и Claude Code вернул его без повторного применения определения субагента, из которого он был порождён. Уведомление следует за отчётом о возобновлении в результате инструмента отправляющего агента и называет причину. Когда файл определения получен из папки без сохранённого доверия, оно выглядит так:
Проверка применяется к определению в каталоге .claude/agents/ проекта или каталога --add-dir, и принятие диалога доверия для родительской папки её не удовлетворяет. Что делать:
  • Запустите claude в папке, которую называет лог отладки, и примите диалог доверия. Определение повторно применяется в следующий раз, когда Claude Code вернёт участника команды; перезапускать сессию лидера не нужно
  • Или установите запись hasTrustDialogAccepted в true в ~/.claude.json, используя точный ключ projects["<path>"], который выводит лог отладки

Message too large for cross-session delivery

Межсессионное сообщение Claude другой вашей сессии на этой машине было слишком длинным для отправки. Claude Code отклонил его, и получающая сессия ничего не получила. Отказ появляется в результате инструмента отправляющей сессии, а не как баннер в вашем терминале. Он называет оба размера и способ уместить сообщение:
Повторная отправка того же текста завершается такой же ошибкой. Что делать:
  • Попросите Claude кратко изложить сообщение или поместить объёмное содержимое в файл и отправить путь к файлу
  • Попросите Claude разделить содержимое на несколько более коротких сообщений
До версии 2.1.235 Claude Code сообщал, что слишком большое сообщение отправлено. Получающая сессия отбрасывала его непрочитанным.

Too many messages to this session just now

Claude отправил быструю серию межсессионных сообщений одной из ваших сессий на этой машине, и серия достигла предела того, что принимают входящие этой сессии. Claude Code отклонил следующую отправку, и получающая сессия ничего из неё не получила. Отказ появляется в результате инструмента отправляющей сессии, а не как баннер в вашем терминале:
Что делать:
  • Обычно ничего: Claude объединяет оставшееся содержимое в одно сообщение или ждёт, прежде чем отправлять ещё
  • Если вы сами вызвали эту серию, попросите Claude объединить оставшееся в одно сообщение
До версии 2.1.236 Claude Code сообщал, что эти сообщения отправлены. Получающая сессия отбрасывала их непрочитанными.

Cross-session message was dropped at the recipient session’s inbox

Claude отправил межсессионное сообщение другой вашей сессии на этой машине, и входящие этой сессии отбросили его до того, как Claude в этой сессии его прочитал. Строка называет адрес получателя и, если получатель указал причину, добавляет её после тире:
Одна строка может охватывать несколько отброшенных сообщений. Тогда она начинается во множественном числе, например Cross-session messages (12) were dropped. Чтобы определить, какой сессии принадлежит адрес, сравните его со строкой Peer address, которую /status показывает в каждой сессии. После тире строка указывает одну или несколько из этих причин:
  • its queue of undelivered peer messages was full: получатель уже содержал столько недоставленных сообщений от других сессий, сколько позволяет его очередь
  • you sent faster than that session accepts: сообщения отправляющей сессии поступали быстрее, чем получатель принимает от одного отправителя
  • it repeated your previous message: сообщение было идентично тому, которое отправляющая сессия незадолго до этого отправила этому получателю
  • a relay loop between sessions was cut: сообщение продолжало цепочку сессий, отправляющих сообщения друг другу, и цепочка прошла через получателя слишком много раз или стала слишком длинной
Что делать:
  • Считайте, что получатель не видел отброшенные сообщения. Claude Code сообщает Claude то же самое и говорит ему включить всё, что ещё важно, в одно более позднее сообщение, а не отправлять повторно сразу
  • Если ваши сессии часто отправляют друг другу обновления, попросите Claude отправлять меньше сообщений, но более крупных, например один отчёт, когда сессия завершает свою работу
  • Для a relay loop between sessions was cut введите следующую инструкцию в одну из сессий самостоятельно. Сообщение, которое Claude отправляет в ответ на ваш собственный промпт, начинает новую цепочку
До версии 2.1.238 отправляющая сессия не получала отчёта, когда входящие получателя отбрасывали сообщение.

Refusing to send a cross-session message

Прежде чем записать межсессионное сообщение другой вашей сессии на этой машине, Claude Code проверяет, что сокет входящих целевой сессии является тем эндпоинтом, которому было адресовано сообщение. Когда проверка не проходит, Claude Code отклоняет отправку в отправляющей сессии, и целевая сессия ничего не получает. Для сообщения, которое отправляет Claude, отказ появляется в результате инструмента отправляющей сессии:
Текст после Refusing to send: называет непройденную проверку:
  • reply target is a symlink: по пути сокета целевой сессии находится символическая ссылка. Claude Code не доставляет сообщения через неё, потому что такая ссылка может перенаправить сообщение на эндпоинт, который целевая сессия не создавала.
  • cannot vet reply target: Claude Code вообще не смог проверить целевой путь, например потому что его чтение завершилось ошибкой прав доступа.
Что делать:
  • Обычно ничего: проверки не дают сообщению попасть на эндпоинт, отличный от сессии, которой оно было адресовано, и ничего не было отправлено
  • Если reply target is a symlink повторяется для одной сессии, выясните, что создало ссылку по пути сокета этой сессии, который показан в её /status в поле Peer address
Claude Code проверяет правила разрешений для пути к файлу, а затем повторно подтверждает разрешение пути, когда инструмент открывает файл или начинает поиск. Когда он не может подтвердить, что путь по-прежнему ведёт в место, одобренное проверкой, Claude Code отклоняет операцию, вместо того чтобы следовать по пути. Отказ появляется в результате инструмента:
Каждый отказ называет свою причину:
  • its symlink resolution changed after permission was checked: символическая ссылка на пути или в корне поиска Grep или Glob была заменена между проверкой разрешения и операцией. В отказе чтения фраза в скобках указывает, какое сравнение не прошло.
  • its parent-directory symlink resolution changed after permission was checked: каталог, через который проходит путь записи, больше не разрешается в одобренное место
  • where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve): Claude Code не смог проследить путь до конечного места на диске, например потому что символические ссылки на нём образуют цикл
  • it is a symbolic link. Write to the link's target path instead: символическая ссылка находится непосредственно в запрошенном месте записи, например CLAUDE.md, являющийся символической ссылкой на AGENTS.md; сообщение направляет Claude к цели ссылки
  • Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.: то же условие, обнаруженное, когда файл открывает другой механизм записи, например при записи в .mcp.json, являющийся символической ссылкой
  • Refusing to write into symlinked directory: <path>: каталог, содержащий файл, сам является символической ссылкой, например каталог .claude/ проекта, ссылающийся на другое место
  • a path one of its Read deny rules is written through changed while the search was being prepared. Retry.: запрещающее правило Read для поиска называет путь, проходящий через символическую ссылку, и эта ссылка изменилась, пока Claude Code готовил поиск
  • it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.: корень поиска существует, но его не удалось открыть; код в скобках — это ошибка операционной системы
  • its permission check expired before it ran (too many concurrent file operations). Retry.: Claude Code вытеснил запись о подтверждении при большом количестве одновременных файловых операций до того, как инструмент её использовал; повторная попытка выполняет новую проверку разрешения
  • ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration: Claude Code не смог разрешить двоичный файл rg в абсолютный путь, поэтому он отклоняет поиск вне рабочего каталога, а не выполняет поиск, на который не распространяются ваши запрещающие правила
Что делать:
  • Обычно ничего: отказ доходит до Claude как результат инструмента, и отклонённая операция не выполняется
  • Если отказ из-за символической ссылки повторяется для одного пути, найдите, что постоянно перезаписывает там ссылку, например инструмент сборки или наблюдатель за файлами, или попросите Claude использовать разрешённый путь к файлу вместо пути через ссылку
  • Если этот отказ появляется для каждого файла, когда Claude Code работает в Windows внутри AppContainer или песочницы с ограниченным токеном, обновитесь до версии 2.1.265 или новее
  • Если в macOS отказ чтения появляется для файла, который ничто не перезаписывает, например для скриншота, перетащенного в промпт, обновитесь до версии 2.1.273 или новее
  • Для отказа ripgrep установите ripgrep с помощью менеджера пакетов, чтобы rg разрешался в абсолютный путь в PATH, или выполняйте поиск в пределах рабочего каталога
До версии 2.1.251 Claude Code повторно проверял разрешение пути только при записи файлов, поэтому ссылка, заменённая после проверки разрешения, могла без какого-либо сообщения перенаправить чтение или поиск в другое место. Из этих отказов в более ранних версиях появляются только отказы записи для родительского каталога, через символическую ссылку и в каталог-ссылку. До версии 2.1.280 отказ where it leads on disk could not be determined не появлялся.

Task output swap refused

Claude Code сохраняет вывод каждой команды Bash в файл в своём временном каталоге. Каждый раз, открывая один из этих файлов, он проверяет, что путь по-прежнему ведёт к созданному им файлу и его не перенаправляет символическая ссылка, дополнительная жёсткая ссылка или перемещённый каталог. Это сообщение означает, что проверка не прошла, поэтому Claude Code отклонил операцию, вместо того чтобы записывать или читать вывод по этому пути. Сообщение появляется в результате инструмента Bash:
Текст в скобках называет непройденную проверку. Причины, такие как output symlink was re-pointed, output file identity changed и not a regular file, сообщают об одном и том же: что-то по пути вывода или на нём больше не является файлом, созданным Claude Code. Предложение To recover: содержат только некоторые причины. Если проверка не проходит, пока команда ещё выполняется, Claude Code останавливает команду, и её результат сообщает:
Что делать:
  • Обновитесь до версии 2.1.260 или новее. Более ранние версии иногда показывали это сообщение при отсутствии ссылки или перемещённого каталога
  • Перезапустите Claude Code, установив CLAUDE_CODE_TMPDIR в новый каталог
  • Или проверьте каталог вашего проекта во временном каталоге Claude Code — в примере сообщения это /private/tmp/claude-501/-Users-you-my-project. Если этот путь является символической ссылкой или каталогом, которого там быть не должно, удалите саму ссылку или каталог, а не цель ссылки, и перезапустите Claude Code
  • Если отказ повторяется, какой-то процесс заменяет, связывает ссылками или удаляет записи во временном каталоге Claude Code, пока работает сессия. Установите CLAUDE_CODE_TMPDIR в каталог, которым больше ничто не управляет, и перезапустите

Disk quota or temp filesystem is full

Claude Code сохраняет вывод каждой команды Bash и PowerShell в файл в своём временном каталоге. Когда команда завершается с ненулевым кодом и вообще без вывода, Claude Code проверяет, не закончилось ли место или индексные дескрипторы на файловой системе, содержащей этот файл, и не исчерпана ли ваша дисковая квота на ней. Если это так, в результате команды вместо пустого вывода появляется диагностическое сообщение:
Сообщение указывает, что закончилось:
  • Your disk quota is full ... (EDQUOT): ваша собственная квота на этой файловой системе исчерпана. Квота может быть исчерпана, даже когда на файловой системе ещё есть свободное место
  • The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC): на файловой системе или в вашей квоте на ней не осталось места
  • Command output was lost: the temp filesystem at ... is full или ... is out of inodes: на файловой системе почти не осталось свободного места или заканчиваются индексные дескрипторы
Что делать:
  • Удалите ненужные файлы на файловой системе, содержащей временный каталог Claude Code. Для EDQUOT удалите файлы, которые учитываются в вашей собственной квоте. Для out of inodes удалите много файлов, а не несколько больших, так как каждый файл занимает один индексный дескриптор независимо от размера
  • Или перезапустите Claude Code, установив CLAUDE_CODE_TMPDIR в каталог на файловой системе со свободным местом
  • Затем попросите Claude снова выполнить команду. Выведенные ею данные были потеряны, а не усечены

File is not valid UTF-8

Claude использовал инструмент Edit или NotebookEdit для файла, байты которого не декодируются как UTF-8, и Claude Code отклонил изменение. Ничего не было записано, поэтому файл остался прежним. Эти инструменты сохраняют весь файл обратно в UTF-8, из-за чего каждый байт, который им не удалось декодировать, превратился бы в символ замены U+FFFD. Сообщение появляется в результате инструмента:
Файл, который должен быть в UTF-8, тоже получает это сообщение, если содержит хотя бы одну недопустимую последовательность байтов, потому что проверка охватывает байты файла целиком. Что делать:
  • Чтобы сохранить файл в текущей кодировке, позвольте Claude внести изменение с помощью shell-команды, которая читает и записывает файл в этой кодировке, как предписывает ему сообщение
  • Чтобы продолжать редактировать файл инструментом Edit, преобразуйте его в UTF-8 или исправьте недопустимые байты в файле, который должен быть в UTF-8, а затем попросите Claude внести правку снова
До версии 2.1.296 Edit и NotebookEdit применяли такую правку и сохраняли каждый байт, который им не удалось декодировать, как U+FFFD. В этих версиях обновите Claude Code.

The source file is not valid UTF-8 text

Claude попытался опубликовать артефакт из файла, байты которого не декодируются как текст или текст которого уже содержит символ замены U+FFFD, поэтому Claude Code отклонил публикацию до загрузки чего-либо. Сообщение появляется в результате инструмента Artifact и называет первую позицию, которую нужно исправить:
Claude Code декодирует файл как UTF-8 или как UTF-16, если файл начинается с метки порядка байтов UTF-16 little-endian. Когда такой файл UTF-16 не декодируется, первое сообщение называет UTF-16 и всё равно предлагает переписать файл в UTF-8. Если после названной позиции есть и другие, сообщение добавляет после позиции счётчик, например (+2 more). Что делать:
  • Обычно ничего: Claude переписывает файл и публикует снова
  • Если вы сами написали или экспортировали файл, пересохраните его в UTF-8 и замените каждый U+FFFD символом, потерянным при предыдущем редактировании, вставке или преобразовании
  • Чтобы намеренно показать U+FFFD на странице, запишите его в HTML как &#xFFFD; вместо самого символа
До версии 2.1.267 Claude Code загружал такой файл без проверки, и публикацию вместо этого отклонял сервер.

Not published: that file is on a network share

Claude попытался опубликовать артефакт из файла по пути, указывающему на сетевой хост:
  • В Windows — путь \\server\share, не находящийся на подключённом сетевом диске, который вы передали при запуске с помощью --add-dir
  • В macOS или Linux — путь автомонтирования, например /net/<host>/page.html
При разрешении такого пути происходит обращение к указанному в нём хосту, и в Windows это обращение может передать хосту ваши учётные данные. Claude Code отказывается публиковать файл и не читает его. Отказ появляется в результате инструмента Artifact:
Что делать:
  • Ничего, если вам не нужен именно этот файл: сообщение говорит Claude вместо этого опубликовать файл из собственных папок сессии
  • Чтобы опубликовать именно этот файл, скопируйте его в папку на локальном диске и попросите снова
  • В Windows, чтобы Claude мог публиковать файлы прямо с общего ресурса, подключите его как диск с буквой и передайте этот диск при запуске Claude Code. Например, в PowerShell выполните net use Z: \\server\share, а затем claude --add-dir Z:\. После этого Claude сможет публиковать файлы с этого диска. Добавления диска посреди сессии с помощью /add-dir недостаточно.
  • В macOS или Linux смонтируйте общий ресурс в каталог, например в каталог внутри /mnt или /Volumes, и публикуйте из этого пути вместо пути автомонтирования

Reading a local file from outside the connected folders in a Cowork session

В сессии Cowork, работающей на вашей машине в приложении Claude Desktop, Claude указал локальный файл для артефакта. Claude Code не смог подтвердить, что файл является обычным файлом внутри подключённых папок сессии: путь находится вне этих папок, проходит через символическую ссылку или записан так, что может указывать на другой файл, чем кажется. Чтение такого файла требует вашего подтверждения, и в сессии, которая не может показать вам карточку подтверждения, например в сессии, настроенной на пропуск всех подтверждений, Claude Code отклоняет чтение. Отказ появляется в результате инструмента Artifact; если файл вообще не удалось проверить, вместо этого он называет эту ошибку:
Что делать:
  • Обычно ничего: сообщение говорит Claude вместо этого использовать обычный файл внутри подключённых папок
  • Чтобы поместить именно этот файл в артефакт, скопируйте его в одну из подключённых папок сессии как обычный файл, а не символическую ссылку, и попросите снова

WebFetch cannot fetch localhost

Claude вызвал WebFetch с URL-адресом, имя хоста которого не содержит точки, например http://localhost:3000 или простое имя в интранете вроде http://wiki/. WebFetch отклоняет такие URL-адреса до выполнения какого-либо запроса:
Что делать:
  • Обычно ничего: сообщение направляет Claude к curl через инструмент Bash, который может обращаться к локальным серверам и серверам интранета
До версии 2.1.268 WebFetch сообщал об этих URL-адресах общей ошибкой Invalid URL.

WebFetch domain safety check failed

Перед загрузкой URL-адреса WebFetch отправляет имя хоста на api.anthropic.com, чтобы сверить его со списком блокировки по безопасности доменов Anthropic. Если проверку не удаётся завершить, WebFetch не может подтвердить безопасность домена, поэтому не загружает страницу, и результат инструмента вместо этого содержит одно из следующих сообщений:
  • rate-limited: эндпоинт проверки ответил HTTP 429. Сообщение говорит Claude продолжить без страницы и повторить попытку не более одного раза позже. Claude Code не кэширует неудачную проверку, поэтому последующая загрузка этого домена снова выполняет проверку. Если сессии в вашей сети часто сталкиваются с этим, вы можете пропустить проверку с помощью skipWebFetchPreflight: true в настройках.
  • Unable to verify: запрос проверки завершился ошибкой, превысил время ожидания или получил другой статус ошибки. Если ваша сеть блокирует api.anthropic.com, добавьте этот домен в список разрешённых доменов или пропустите проверку с помощью skipWebFetchPreflight: true в настройках.
До версии 2.1.286 сообщение об ограничении частоты запросов выглядело как The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.. До версии 2.1.285 о проверке, упёршейся в ограничение частоты запросов, вместо этого сообщалось сообщением Unable to verify.

Ошибки фоновых сессий

Фоновые сессии работают без собственного интерактивного терминала, поэтому команды, которым он требуется, ведут себя в них иначе. Эти сообщения появляются в транскрипте фоновой сессии, в терминале, подключённом к ней, в сессии или оболочке, из которой вы её запустили, или, для записей о защите worktree ниже, в любой сессии, изолированной в worktree, или при работе субагента, изолированного в worktree; если сообщение относится только к одному интерфейсу, это указано в соответствующей записи.

Команды, отклонённые в фоновой сессии

Команды, которые открывают интерактивное диалоговое окно, не могут этого сделать, пока к фоновой сессии не подключён терминал. /install-github-app, список настроек /mcp и действия аутентификации в меню MCP-сервера отвечают сообщением. Для /install-github-app и списка настроек /mcp сессия также появляется в разделе Needs input в представлении агента, чтобы вы могли найти её, подключиться и запустить команду снова. Пока терминал подключён, эти команды работают как обычно. До версии 2.1.216 сессия не появлялась в разделе Needs input после отклонения /install-github-app или списка настроек /mcp. В версиях с 2.1.213 по 2.1.215 команды по-прежнему работали при подключённом терминале, а сообщение об отказе предлагало подключиться и запустить команду снова. В версиях с 2.1.208 по 2.1.212 Claude Code отклонял их даже при подключённом терминале с сообщением вроде Can't open MCP settings in a background session; в этих версиях запустите команду из обычной сессии claude или обновитесь. До версии 2.1.208 они открывали своё диалоговое окно внутри фоновой сессии. Только в версии 2.1.208 Claude Code также отклонял средство выбора /model в фоновой сессии, а /upgrade выводил URL обновления вместо открытия браузера. В формулировке указывается команда. Список настроек /mcp сообщает:
Что делать:
  • Подключитесь к сессии из представления агента и запустите команду снова
  • Или используйте форму, указанную в сообщении, например /mcp reconnect <server>, /mcp enable или /mcp disable, которые работают без подключения

Запись или команда заблокирована, потому что путь невозможно безопасно разрешить

Claude обратился к файлу или рабочему каталогу через написание пути, которое защита изоляции в worktree не может разрешить в одно проверяемое расположение. Защита проверяет операции записи и рабочие каталоги команд в любой сессии, изолированной в worktree, интерактивной или фоновой, а также в субагентах, изолированных в worktree. Она разрешает символические ссылки, прежде чем проверить, что операция не затрагивает общую рабочую копию, а если разрешение не удаётся, блокирует операцию, а не позволяет ей туда попасть. Сообщение называет отклоняемые формы пути и способ повторить попытку:
Заблокированная команда сообщает ту же причину для своего рабочего каталога, и сообщение заканчивается на re-run the command from its direct symlink-free path. До версии 2.1.217 защита сравнивала написания путей без разрешения символических ссылок, поэтому такие написания не блокировались, и запись через символическую ссылку могла попасть в общую рабочую копию. Что делать:
  • Обычно ничего: полное сообщение передаётся Claude как ошибка инструмента, и Claude повторяет попытку с указанным в нём прямым путём. Для заблокированного редактирования файла в представлении диалога показывается только короткая строка Error editing file; полное сообщение появляется в представлении транскрипта, которое открывается сочетанием Ctrl+O. Заблокированная команда выводит его в своём выводе.
  • Если блокировка повторяется для одного и того же файла, путь, вероятно, проходит через закоммиченную символическую ссылку, цель которой содержит .., например docs/current -> ../README.md; попросите Claude отредактировать целевой файл по его реальному пути, а не через ссылку

Запись или команда заблокирована, потому что путь указывает на сетевое расположение

Claude обратился к файлу или рабочему каталогу через путь, указывающий на диск, которого нет на вашем компьютере, на общий ресурс UNC, например \\server\share\file, или на путь автомонтирования /net, тогда как рабочая копия сессии находится на локальном диске. Та же защита изоляции в worktree не может проверить, что такой путь не затрагивает общую рабочую копию, поэтому блокирует операцию. Изоляция сессии в worktree не снимает блокировку. Сообщение называет форму пути, которую следует использовать вместо этого:
Заблокированная команда сообщает ту же причину для своего рабочего каталога, и сообщение заканчивается на re-run the command from its local, plainly-spelled path. До версии 2.1.217 защита сравнивала только текст пути, поэтому обращение к файлу внутри рабочей копии через путь UNC или /net не блокировалось. Что делать:
  • Обычно ничего: Claude повторяет попытку с локальным написанием пути, которое запрашивает сообщение

Команда заблокирована проверками изоляции в worktree

Claude запустил команду Bash, PowerShell или Monitor в сессии, изолированной в worktree, и Claude Code отклонил её по одной из следующих причин:
  • Команда выполнялась бы в основной рабочей копии или в другом worktree. В сообщении сказано, что её рабочий каталог resolved to the shared checkout или is in a different worktree.
  • Команда Bash или Monitor направляет git на основную рабочую копию.
  • Claude Code не может проверить по тексту команды Bash или Monitor, что любой запускаемый ею git остаётся внутри worktree. Команда, в которой git вообще не упоминается, тоже может быть отклонена по этой причине, потому что раскрытие косвенной ссылки на переменную, например ${!name}, или выполнение подстановки функции Bash, например ${ command; }, порождает во время выполнения значение, которое само может быть командой.
Сообщение содержит is isolated in the worktree <path>, but this command, за которым следует причина, например для команды, текст которой Claude Code не смог проверить:
Что делать:
  • Git направлен на основную рабочую копию, или текст команды невозможно проверить: ничего делать не нужно. Claude читает сообщение и переписывает команду так, как просит последнее предложение. Если запрошенная вами команда продолжает отклоняться из-за раскрытия в её тексте, запишите отмеченное значение буквально и запустите git отдельной простой командой изнутри worktree
  • Чтобы намеренно выполнить действие в основной рабочей копии, запустите команду самостоятельно в терминале вне сессии

У этой сессии нет сохранённого транскрипта

Вы подключились к сессии, которую перевели в фон с помощью ← или /background и которая остановилась до того, как выполнила собственный ход. Claude Code не смог найти диалог, из которого вы её перевели, поэтому сессии нечего возобновлять. Сообщение заканчивается командой claude respawn для этой сессии:
При открытии строки той же сессии в представлении агента вместо этого под списком показывается Press enter again to restart this session fresh, и повторное нажатие Enter на строке перезапускает сессию с пустым диалогом. Что делать:
  • Чтобы запустить остановленную сессию заново, выполните claude respawn <id> с ID из сообщения или дважды нажмите Enter на её строке в представлении агента
  • Если сессия завершила ответ, а вы всё равно видите этот отказ в версии до 2.1.214, нечитаемая папка в ~/.claude/projects могла привести к тому, что при сканировании транскриптов сохранённый диалог был пропущен; обновитесь до версии 2.1.214 или новее, которая допускает нечитаемые папки при сканировании

Эта сессия запущена в другом терминале

Вы открыли строку остановленной сессии в представлении агента, а её сохранённый диалог уже открыт в другом работающем процессе Claude Code на этом компьютере, поэтому Claude Code отказывается запускать второй процесс, который записывал бы в тот же транскрипт. Какое сообщение вы увидите, зависит от того, что удерживает диалог:
  • running in another terminal: диалог удерживает терминал, например тот, в котором вы возобновили его с помощью claude --resume или /resume. В строке также показывается Open in a terminal.
  • already open in another running Claude session: его удерживает другой неинтерактивный процесс Claude Code, например процесс фоновой сессии для того же диалога, который ещё не завершился.
Что делать:
  • Продолжите диалог в процессе, в котором он открыт, или завершите этот процесс и снова откройте строку
До версии 2.1.248 существовал только отказ already open in another running Claude session: диалог, возобновлённый в терминале, не считался открытым, и при открытии строки запускался второй процесс Claude Code, записывающий в тот же диалог.

Сохранённый диалог этой сессии больше не находится на диске

Вы открыли фоновую сессию, которая завершилась, пока фоновая служба была выключена, и с тех пор очистка транскриптов удалила её сохранённый диалог, например после того, как компьютер был выключен несколько недель. Открытие такой строки обычно возобновляет её сохранённый диалог. Когда возобновлять нечего, Claude Code отказывает, а не выполняет исходный промпт сессии повторно без вашего ведома:
claude attach <id> выводит этот текст. В представлении агента нижняя строка короче и заканчивается на ctrl+x deletes the row. Что делать:
  • Выполните claude rm <id>, чтобы удалить строку. Если применим один из случаев сохранения, claude rm вместо этого сохраняет строку и worktree и называет причину
  • Чтобы снова выполнить исходный промпт сессии в новом диалоге, выполните claude respawn <id>
До версии 2.1.248 открытие такой строки вместо отказа повторно выполняло исходный промпт сессии, возвращая на передний план задачу многонедельной давности.

В worktree есть коммиты, которые никуда не отправлены

Вы попытались удалить фоновую сессию, worktree которой содержит коммиты, сохранность которых где-либо ещё Claude Code не может подтвердить. Claude Code сохраняет worktree и строку сессии, а не уничтожает коммиты незаметно для вас. claude rm называет ветку и неотправленные коммиты и сообщает, как действовать дальше:
Если Claude Code не может составить сводку коммитов, строка с подробностями вместо этого гласит The worktree has unpushed commits. В представлении агента строка сессии показывает not deleted с той же причиной. Коммиты, находящиеся в удалённом репозитории, не блокируют удаление. Не блокируют его и коммиты в локальной копии ветки по умолчанию удалённого репозитория origin, если эта ветка извлечена в вашей основной рабочей копии, то есть в самом каталоге репозитория, а не в worktree. Что делать:
  • Чтобы сохранить коммиты, отправьте ветку worktree или выполните её слияние с веткой по умолчанию, извлечённой в основной рабочей копии, затем снова удалите сессию
  • Чтобы отбросить коммиты, выполните команду claude rm <id> --discard-unpushed, выведенную в сообщении, или снова дважды нажмите Ctrl+X на строке сессии в представлении агента. Это удаляет сессию и worktree вместе с его веткой, неотправленными коммитами и любыми незакоммиченными изменениями. Если после отказа в worktree появился новый коммит, Claude Code снова сохраняет его и показывает обновлённое состояние
  • Если в сообщении сказано, что worktree также записан за другой завершённой сессией, повторное удаление не отбрасывает его: отправьте коммиты, затем снова удалите сессию
До версии 2.1.268 claude rm помещал сводку коммитов прямо в строку kept. Если claude rm не мог составить сводку коммитов, строка kept вместо сводки гласила worktree has commits that are not pushed anywhere. До версии 2.1.260 сообщение не называло ветку и коммиты, а повторное удаление отклонялось точно так же: чтобы удалить сессию без отправки коммитов, нужно было самостоятельно удалить worktree командой git worktree remove --force <path>, а затем снова выполнить claude rm <id>. До версии 2.1.248 ветка по умолчанию, извлечённая в основной рабочей копии, не учитывалась: ветка, слияние которой вы уже там выполнили, всё равно вызывала этот отказ, пока её коммиты не попадали в удалённый репозиторий.

Процесс хоста терминала завершился аварийно

Терминал каждой фоновой сессии работает в процессе хоста под управлением фоновой службы, и этот процесс завершился аварийно, пока служба ещё удерживала соединение с ним, поэтому сессия стала недоступна. В Linux и WSL фоновая служба проверяет каждый процесс хоста раз в несколько секунд, помечает сессию как сбойную, если процесс завершился, а его соединение со службой так и не закрылось, и показывает причину в строке сессии в представлении агента:
Из оболочки claude attach <id> перезапускает сессию, уже помеченную как сбойную из-за завершившегося хоста, а в противном случае выводит причину и завершается:
Диалог в любом случае сохраняется. Строка, в которой вместо этого выполняется shell-команда, показывает terminal host process died — its output is gone; the command was not run again, а claude attach выводит This command's terminal host process died — its output is gone and the command was not run again. Claude Code никогда не перезапускает команду за вас. Что делать:
  • В представлении агента нажмите Enter на сбойной строке; сессия перезапустится в новом процессе хоста, и диалог возобновится
  • Из оболочки снова выполните claude attach <id>. Claude Code выведет Session <id>'s terminal host died — restarting it on a fresh one… и заново откроет сессию
  • Строку с shell-командой так перезапустить нельзя; чтобы выполнить команду повторно, запустите её снова
До версии 2.1.247 завершившийся процесс хоста мог проходить все проверки работоспособности, выполняемые фоновой службой, поэтому при открытии сессии бесконечно показывалось opening… · esc to cancel, а claude attach <id> ожидал, не сообщая об ошибке.

Сессия не отвечает

Вы открыли фоновую сессию, и фоновая служба приняла запрос на открытие, но вывод не поступал около десяти секунд, поэтому Claude Code заключает, что процесс, передающий терминал сессии, не может доставить вывод, и прекращает попытку вместо ожидания. В представлении агента Claude Code предлагает перезапуск в нижней строке:
Из оболочки claude attach <id> выводит причину и завершается:
Claude Code никогда не перезапускает за вас строку, в которой выполняется shell-команда, потому что перезапуск выполнил бы команду повторно. Что делать:
  • В представлении агента снова нажмите Enter на той же строке. Claude Code остановит не отвечающий процесс и перезапустит сессию, и диалог возобновится. Без этого второго нажатия ничего не останавливается
  • Из оболочки выполните claude stop <id>, затем claude attach <id>
  • Для строки с shell-командой нажмите Ctrl+X в представлении агента или выполните claude stop <id>, чтобы остановить её; чтобы выполнить команду повторно, запустите её снова

Сессия была остановлена во время перезапуска

Вы открыли фоновую сессию, процесс которой не работал, и пока Claude Code её перезапускал, другой процесс Claude Code остановил её, например claude stop в другом терминале. Claude Code оставляет сессию остановленной:
При открытии только что запущенной сессии, процесс которой ещё стартует, Claude Code вместо этого ожидает процесс. До версии 2.1.246 открытие сессии в этот момент могло остановить её и вывести это сообщение. Что делать:
  • Если вы не останавливали сессию, снова откройте её строку в представлении агента или выполните claude respawn <id>, чтобы перезапустить её
  • Если вы остановили её сами, ничего делать не нужно: сессия остаётся остановленной

Агент сессии больше недоступен

Вы возобновили сессию, в которой работал пользовательский агент, запущенный с --agent или настройкой agent, и Claude Code не нашёл агента с таким именем. Сначала он ищет в исходном каталоге сессии, если вы доверяете этому рабочему пространству, затем в каталоге, из которого вы возобновляете сессию. Сессия всё равно возобновляется, но с инструментами по умолчанию, поэтому ограничения инструментов агента больше не действуют:
Предупреждение называет только те каталоги, в которых искал Claude Code, и появляется в возобновлённом диалоге независимо от того, пробуждаете ли вы фоновую сессию, выполняете /resume или claude --resume или возобновляете сессию в неинтерактивном режиме, где оно также выводится в stderr. Сессии, использующие --input-format stream-json, его не показывают, потому что Agent SDK передаёт агентов после запуска. Claude Code не сохраняет резервный вариант в сессии, поэтому предупреждение повторяется при каждом возобновлении, пока вы не примете меры. Встроенный агент claude не вызывает предупреждения, поскольку переключение на набор инструментов по умолчанию для него ничего не меняет. До версии 2.1.216 Claude Code молча продолжал работу с агентом по умолчанию, а поиск охватывал только каталог, из которого вы возобновляли сессию, поэтому агент уровня проекта терялся при любом возобновлении из другого каталога. Что делать:
  • Создайте заново файл агента в .claude/agents/<name>.md в проекте сессии или в ~/.claude/agents/<name>.md для личного агента, затем снова возобновите сессию
  • Или возобновите сессию с --agent <name>, указав существующего агента, чтобы запустить сессию с этим агентом
  • Если агент относится к уровню проекта и вы не доверяете исходному каталогу сессии, один раз запустите там Claude Code, примите диалоговое окно доверия, затем снова возобновите сессию

Эта сессия перезапустилась после наступления времени следующего пробуждения /loop

/loop с самостоятельно выбираемым интервалом в фоновой сессии остановился. Процесс сессии завершился, пока цикл ожидал следующего пробуждения, и время этого пробуждения наступило до запуска следующего процесса сессии. Пропущенное пробуждение не срабатывает с опозданием. Уведомление сообщает, насколько было просрочено пробуждение на момент перезапуска сессии:
До версии 2.1.295 в такой ситуации цикл останавливался без уведомления. Что делать:
  • Чтобы продолжить цикл, ответьте в сессии и скажите об этом, например keep the loop running. Claude прочитает уведомление вместе с вашим ответом и сможет запланировать следующее пробуждение
  • Если цикл вам больше не нужен, ничего не делайте. Он уже остановлен

Ошибки средства запуска CLAUDE_CODE_PROCESS_WRAPPER

Переменная CLAUDE_CODE_PROCESS_WRAPPER задана, но её значение нельзя использовать, поэтому Claude Code отказывается запускать затронутый процесс, а не запускает его без средства запуска. О проблемах конфигурации сообщается сообщением, которое начинается с имени переменной и указывает причину, например:
Если средство запуска стартует, но завершается, не заменив себя на Claude Code, запускаемая им сессия завершается сбоем, и строка сессии в представлении агента сообщает, что средство запуска must exec, not daemonize, а затем всё, что оно вывело. Сессия, которая не может запуститься или связаться с фоновой службой из-за средства запуска, сообщает о проблеме со средством запуска как о причине внутри Couldn't reach the background service (...). Что делать:
  • Задайте в переменной абсолютный путь к исполняемому файлу, который завершается вызовом exec "$@". Полное описание см. в разделе контракт средства запуска
  • Проверьте /status, который показывает разрешённую команду запуска в записи Self-exec и предупреждает, если работающая фоновая служба ей не соответствует, или выполните claude daemon status из оболочки
  • После исправления значения в блоке env настроек перезапустите фоновую службу командой claude daemon stop --any, чтобы при следующем запуске стартовала служба с обёрткой

EUNKNOWN при запуске фоновой сессии

Windows отказалась запускать программу с кодом ошибки, не имеющим стандартного имени, поэтому сбой отображается как EUNKNOWN. Обычно причина в политике ограничения программ, например Group Policy или AppLocker, которая блокирует запускаемую программу. Ошибка появляется при запуске фоновой сессии с помощью /background или claude --bg:
В некоторых учётных записях в сообщении вместо background service указано daemon. При установке через npm ошибка EUNKNOWN, возникающая, пока npm install -g @anthropic-ai/claude-code заменяет двоичный файл, имеет ту же причину, что и EACCES при переустановке, и исчезает, если повторить попытку после завершения установки. Claude Code запускает фоновую службу через PowerShell, чтобы служба продолжала работать после закрытия терминала, используя PowerShell 7, если он установлен, и Windows PowerShell 5.1 в противном случае. Если ни одна версия PowerShell не может запуститься, Claude Code запускает службу напрямую, поэтому политика, блокирующая только PowerShell, не вызывает эту ошибку. До версии 2.1.212 Claude Code использовал для запуска службы только Windows PowerShell 5.1, поэтому на любом компьютере, где Group Policy блокировала PowerShell 5.1, возникала ошибка Couldn't start the session — EUNKNOWN: unknown error, uv_spawn, даже при установленном PowerShell 7. Что делать:
  • Если в сообщении указано Couldn't start the session, обновитесь до версии 2.1.212 или новее. В более ранних версиях можно также сначала выполнить claude daemon run в отдельном терминале, а затем снова запустить фоновую сессию. Эта команда запускает фоновую службу на переднем плане терминала, поэтому служба работает только до тех пор, пока этот терминал открыт.
  • Если установка через npm заменяла двоичный файл, дождитесь её завершения, затем снова запустите фоновую сессию
  • Если ошибка появляется в версии 2.1.212 или новее, когда установка через npm не выполняется, уточните у администратора Windows, не блокирует ли политика ограничения исполняемый файл Claude Code
  • Если фоновая служба останавливается при закрытии терминала, значит Claude Code запустил её без PowerShell. Установите PowerShell 7 или попросите администратора разблокировать PowerShell, чтобы служба могла работать после закрытия терминала.

EACCES при запуске фоновой сессии

Claude Code не смог запустить собственный двоичный файл, чтобы запустить фоновую службу, в которой работают фоновые сессии. При установке через npm это обычно означает, что в этот момент npm install -g @anthropic-ai/claude-code заменял двоичный файл, независимо от того, запустили ли его вы или автообновление. Ошибка появляется, когда вы открываете сессию из представления агента:
Когда вы запускаете сессию с помощью /background или claude --bg, та же причина появляется внутри Couldn't reach the background service (...). В тот же период переустановки ошибка может называть другой код, например ENOENT или ENOEXEC, либо EUNKNOWN или EPERM в Windows; у ошибки EUNKNOWN, которая сохраняется при повторных попытках, другая причина. При установке через npm Claude Code ожидает завершения переустановки и сам повторяет попытку: до десяти секунд, а пока на компьютере заметно продолжается установка Claude Code через npm — до двух минут, что покрывает случай, когда другой процесс Claude Code загружает обновление. Если установка длится дольше этого ожидания, сообщение о сбое называет обновление вместо голого кода ошибки:
До версии 2.1.257 ожидание во всех случаях прекращалось через десять секунд, поэтому эта ошибка появлялась, пока другой процесс Claude Code ещё загружал обновление. До версии 2.1.246 Claude Code сразу завершался сбоем без ожидания. Что делать:
  • Подождите несколько секунд, затем снова откройте сессию или запустите её. Если в сообщении сказано, что Claude Code обновляется, повторите попытку после завершения обновления.
  • Если ошибка сохраняется, когда установка через npm не выполняется, ваш пользователь не может запустить установленный двоичный файл. Проверьте права доступа к нему и к его каталогу или переустановите Claude Code.

Фоновая служба завершилась, прежде чем стала доступна

Процесс, который Claude Code запустил в качестве фоновой службы, завершился, прежде чем начал принимать соединения, поэтому Claude Code не смог открыть вашу сессию. Если служба перед завершением вывела ошибку, причина в скобках содержит код выхода или сигнал и первую выведенную службой строку, которая называет, что её остановило:
Когда вы открываете сессию из представления агента, та же причина следует за Couldn't start the background service —. Если служба перед завершением ничего не вывела, в сообщении вместо этого указано nothing on stderr. Claude Code сообщает о сбое вместе со строкой ошибки службы. До версии 2.1.246 сбой проявлялся только после 45-секундного ожидания в виде background service did not become reachable within 45s, без строки ошибки службы. У двух приводимых причин есть известные источники:
  • Error: claude native binary not installed.: в этот момент установка через npm заменяла двоичный файл Claude Code, поэтому служба запустила заглушку npm. Повторите попытку после завершения установки; если строка сохраняется, когда установка не выполняется, завершите установку через npm. До версии 2.1.257 самообновление через npm в macOS вызывало этот сбой при каждом запуске во время установки.
  • nothing on stderr с кодом выхода 1 при каждом запуске в Windows: daemon.lock указывает на процесс, которому Claude Code не может отправить сигнал и завершение которого не может подтвердить, поэтому каждая новая служба решает, что блокировку удерживает другая служба, и завершается. Блокировка, записавший которую процесс Claude Code может признать завершённым, заменяется автоматически и не вызывает этого сбоя. Если сбой повторяется при каждом запуске, удалите ~/.claude/daemon.lock, затем снова откройте сессию или запустите её. До версии 2.1.257 такая блокировка препятствовала каждому запуску, пока вы не удаляли файл.
Что делать:
  • Если в сообщении приведена строка, устраните указанную в ней проблему, затем снова откройте сессию или запустите её. Следующая попытка снова запустит службу
  • Выполните claude daemon status, чтобы проверить, работает ли служба сейчас

Рабочий каталог больше не существует при запуске фоновой сессии

Каталог, в котором вы запустили фоновую сессию, был удалён во время запуска сессии. Claude Code не запускает сессию, а сообщение называет отсутствующий каталог:
До версии 2.1.257 сессия как будто запускалась, а затем отображалась в представлении агента как сбойная строка с той же причиной. До версии 2.1.281 это сообщение появлялось и в том случае, когда каталог был удалён ещё до запуска сессии. В этом случае выводится could not be resolved on disk. Что делать:
  • Создайте заново каталог, указанный в сообщении, или запустите сессию из существующего каталога, затем повторите попытку

Рабочее пространство не является доверенным при запуске фоновой сессии

Вы запустили или перезапустили фоновую сессию в каталоге, которому вы не доверяете, и диалоговое окно доверия рабочему пространству не смогло появиться, чтобы спросить вас. Claude Code не запускает сессию:
Если выполнить ту же команду из терминала в собственном каталоге сессии, вместо этого появится диалоговое окно доверия, и сессия запустится после того, как вы его примете. Это сообщение появляется там, где диалоговое окно показать нельзя, например в скрипте или при перезапуске сессии из каталога, отличного от её собственного. Два варианта указывают на другую причину:
  • The home directory is trusted one session at a time: каталог сессии — ваш домашний каталог. Claude Code никогда не сохраняет доверие для домашнего каталога, поэтому принятие диалогового окна там в одной из прошлых сессий не учитывается.
  • <path> could not be resolved on disk: Claude Code не смог найти каталог сессии на диске.
До версии 2.1.286 в Windows это сообщение также могло появляться в каталоге, которому вы уже доверяли, если запись о доверии была сохранена с путём в другом регистре букв. Обновитесь до версии 2.1.286 или новее. Что делать:
  • Выполните claude в каталоге, указанном в сообщении, и примите диалоговое окно доверия, затем снова выполните команду
  • Для сообщения о домашнем каталоге выполните команду из терминала в домашнем каталоге, чтобы диалоговое окно могло появиться, или запустите сессию из каталога проекта
  • Для сообщения could not be resolved on disk создайте каталог заново или запустите новую сессию из существующего каталога

Ошибки обёртки и IDE

Эти ошибки исходят от программы, которая запустила Claude Code для вас, такой как расширение IDE или приложение Agent SDK, а не от самого Claude Code.

Claude Code process exited with code N

Базовый процесс claude завершился с ненулевым кодом. Сам код выхода не говорит, что не удалось: реальная ошибка находится в собственном выводе процесса, который обёртка добавляет, если она что-то захватила, в противном случае она хранит это в своих логах.
На Windows встроенная сборка может завершиться с кодом 4294967295 сразу после завершения хода. Когда этот выход происходит на границе хода, без ожидающего сообщения и без выполняющейся фоновой задачи, расширение VS Code закрывает сеанс без уведомления вместо отображения этой ошибки. Ваше следующее сообщение возобновляет разговор. До версии 2.1.273 расширение показывало ошибку для этого выхода на каждой границе хода, хотя ничего не было потеряно. Что делать:
  • В VS Code перейдите по ссылке View output logs, показанной с ошибкой, чтобы увидеть основную ошибку
  • В приложении Agent SDK перехватите ошибку вокруг вашего цикла сообщений. Записи в разделе CLI process exit охватывают то, что ваш код получает в каждом языке SDK.
  • Запустите claude в терминале в том же проекте. Ошибка обычно воспроизводится там с её реальным сообщением об ошибке, которое вы затем можете найти на этой странице.
  • Запустите claude doctor в терминале, чтобы проверить установку и конфигурацию

Could not locate the Claude CLI on PATH

Расширение VS Code показывает эту ошибку в Windows, когда вы открываете Claude Code в интегрированном терминале, оболочка терминала — это PowerShell, и расширение не может найти установленный исполняемый файл claude в PATH. Расширение отказывается запускать Claude Code, пока не найдёт установленный claude в PATH.
Что делать:
  • Откройте новое окно PowerShell вне VS Code и запустите where.exe claude. Если оно не выводит путь, CLI не находится в вашем PATH: добавьте его каталог установки, следуя Verify your PATH. Если оно выводит путь, запись поступает из вашего профиля PowerShell или из изменения PATH, которое VS Code ещё не подхватил; следующие два шага охватывают эти случаи.
  • Установите запись PATH как переменную окружения пользователя или системы, а не в вашем профиле PowerShell. Расширение не запускает ваш профиль, поэтому редактирование PATH, которое существует только там, никогда до него не доходит.
  • Перезагрузите VS Code после изменения PATH. Расширение проверяет PATH, который VS Code захватил при запуске, поэтому изменение PATH вступает в силу только после перезагрузки.

The connection to Claude Code ended before this message completed

Расширение VS Code отправило ваше сообщение процессу claude, и соединение завершилось без ошибки до того, как процесс подтвердил или завершил его. Расширение не может определить, было ли сообщение обработано, поэтому оно просит вас отправить его снова:
Что делать:
  • Отправьте сообщение снова. Следующее сообщение запускает свежий процесс claude, который возобновляет разговор.
  • Если это повторяется, запустите claude в терминале в том же проекте. Ошибка, которая продолжает завершать процесс, обычно воспроизводится там с её реальным сообщением об ошибке.

Предупреждения и ошибки Rewind

Эти сообщения поступают из восстановления кода /rewind. Restored the code, but skipped N files — это предупреждение о том, что Claude Code пропустил некоторые пути. No files were restored — это ошибка, которая означает, что ничего не было восстановлено.

Restored the code, but skipped files

Восстановление кода /rewind пропустило один или несколько отслеживаемых путей вместо того, чтобы записать или удалить их. Claude Code пропускает путь, когда:
  • это символическая ссылка, жёсткая ссылка или другой нерегулярный файл, или он стал таким
  • его директория изменилась с момента создания контрольной точки
  • его резервную копию невозможно безопасно прочитать
Пропущенные пути сохраняют своё текущее содержимое. До версии 2.1.216 /rewind записывал и удалял данные через ссылки на отслеживаемых путях и не сообщал о частичном восстановлении.
Что делать:
  • Определите, какие файлы были пропущены, чтобы вы могли обработать каждый из них, следуя приведённым ниже шагам. Сообщение содержит только количество; журнал отладки в ~/.claude/debug/<session-id>.txt указывает каждый пропущенный путь по мере выполнения восстановления, поэтому включите логирование отладки с помощью /debug перед следующим восстановлением. На macOS или Linux вы можете вместо этого найти ссылки напрямую: find . -type l для символических ссылок и find . -type f -links +1 для жёстко связанных файлов.
  • Если пропущенный файл — это ссылка, которую вы создали намеренно, например файл конфигурации, управляемый менеджером dotfile, или файл, жёстко связанный инструментами вроде pnpm, то rewind оставил его содержимое без изменений. Чтобы отменить изменения сеанса в этом файле, попросите Claude отменить редактирование или отредактируйте файл самостоятельно
  • Если вы не создавали ссылку, проверьте путь перед тем, как доверять его содержимому

No files were restored

Claude Code показывает это сообщение, когда вы восстанавливаете код с помощью /rewind и Claude Code не может восстановить ни один из файлов в этой контрольной точке. Для каждого файла либо резервная копия, которую Claude Code сохранил перед редактированием, отсутствует, либо Claude Code не смог записать или удалить файл.
Claude Code удаляет резервные копии сеанса при очистке хранения, по умолчанию примерно через 30 дней после того, как сеанс последний раз их сохранил. Если вы возобновите сеанс после этого, /rewind по-прежнему будет отображать его контрольные точки, но восстановление одной из них может завершиться ошибкой. Если сообщение также говорит N paths were skipped for link safety, см. раздел Restored the code, but skipped files для этих путей. Когда вы создаёте ветвь сеанса, например с помощью --fork-session или /branch, Claude Code копирует резервные копии исходного сеанса в ветвь. Когда Claude Code не может скопировать резервную копию, например потому что диск заполнен, эта резервная копия отсутствует в ветви. Восстановление контрольной точки, которая её требует, может завершиться этой ошибкой. Что делать:
  • Отмените изменения другим способом: попросите Claude отменить его редактирование или восстановите файлы из системы контроля версий. Когда резервные копии удалены, повторный запуск /rewind завершится с той же ошибкой.
  • Если Claude Code не смог записать или удалить файл, исправьте то, что блокирует запись, например разрешения на файл, а затем снова запустите /rewind.
  • Чтобы сохранять резервные копии дольше в будущих сеансах, увеличьте значение cleanupPeriodDays.
До версии 2.1.260 Claude Code молча пропускал файлы, резервные копии которых отсутствовали, и восстановление казалось успешным.

Предупреждения о сохранении сеанса

Claude Code показывает эти предупреждения на постоянной строке ниже поля ввода, когда он не сохраняет транскрипт вашего сеанса. Сеанс продолжает работать в любом случае; предупреждения говорят вам, что сеанс может отсутствовать при --resume позже.

Запись транскрипта не удаётся

Claude Code сохраняет транскрипт на диск по мере работы, и его записи в файл транскрипта не удаются. Сообщение указывает причину с кодом базовой ошибки, например полный диск:
Предупреждение появляется в разных точках в зависимости от ошибки:
  • При первом сбое для условий, которые не исчезают сами по себе: полный диск, превышена квота диска, файловая система только для чтения, путь превышает лимит длины файловой системы, или на macOS и Linux — ошибка разрешения
  • После повторных сбоев, длящихся не менее минуты, для всего остального, включая ошибки разрешения на Windows, где сканирование антивируса может привести к сбою одной записи, которая затем успешно выполняется при повторной попытке
До версии 2.1.217 Claude Code отбрасывал неудачные записи без предупреждения, и позже отсутствие недавних сообщений при --resume было первым признаком. Что делать:
  • Исправьте условие, которое указывает код ошибки: освободите место на диске для ENOSPC; повысьте или очистите квоту для EDQUOT; восстановите доступ на запись в расположение транскрипта для EACCES, EPERM или EROFS
  • Предупреждение исчезает само по себе при следующей успешной записи; перезагрузка не требуется
  • Сообщения, отправленные во время отображения предупреждения, могут по-прежнему отсутствовать при возобновлении сеанса позже

Сохранение транскрипта отключено, потому что установлена переменная CLAUDE_CODE_SKIP_PROMPT_HISTORY

Этот сеанс начался с установленной переменной CLAUDE_CODE_SKIP_PROMPT_HISTORY, поэтому Claude Code не записывает для него транскрипт или историю подсказок:
Переменная является преднамеренным отказом для эфемерных скриптовых сеансов, но она также может достичь сеанса через профиль оболочки, скрипт-обёртку или родительский процесс, который её экспортировал. Что делать:
  • Если вы установили переменную намеренно, никаких действий не требуется; уведомление подтверждает, что сеанс не будет отображаться в --resume, --continue или истории стрелки вверх
  • Если нет, удалите переменную из оболочки или скрипта, который запускает claude, затем начните новый сеанс. Сообщения из текущего сеанса не сохраняются задним числом.

Сохранение транскрипта отключено из-за унаследованного маркера CLAUDE_CODE_CHILD_SESSION

Claude Code устанавливает CLAUDE_CODE_CHILD_SESSION в подпроцессах, которые он порождает, и рассматривает интерактивный сеанс, который его наследует, как вложенный: Claude Code не сохраняет для него транскрипт, поэтому сеансы, которые сам Claude запускает, не заполняют ваш список --resume. Это уведомление означает, что ваш текущий сеанс унаследовал маркер:
Уведомление ожидается, когда вы запустили claude изнутри другого сеанса Claude Code; оно сигнализирует о неправильной классификации, когда маркер просочился через долгоживущий посредник, например терминал, сеанс screen или средство запуска, которое первоначально запустил сеанс Claude Code. Внутри tmux Claude Code обнаруживает маркер, который прибыл через глобальную среду сервера tmux, и продолжает сохранять, поэтому это уведомление не появляется для этого случая. Что делать:
  • Если вы запустили этот сеанс изнутри другого сеанса Claude Code намеренно, никаких действий не требуется
  • Если это сеанс верхнего уровня, выйдите и перезагрузитесь с установленной переменной CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1. Сохранение применяется с момента перезагрузки, поэтому сообщения, отправленные до неё, не сохраняются.
  • Чтобы исправить будущие запуски из того же терминала или средства запуска, удалите CLAUDE_CODE_CHILD_SESSION из его среды

Предупреждения о конфигурации

Claude Code записывает большинство этих сообщений в stderr, а не в беседу, и выводит большинство из них при запуске. Запись указывает, когда её сообщение появляется в другом месте, например в журнале отладки или как уведомление при запуске в представлении беседы, или в другое время, например диагностическая строка unrecognized-model во время запроса.

Claude Code exited after an unrecoverable interface error

Claude Code выводит это сообщение при выходе, потому что его интерфейс терминала столкнулся с ошибкой, от которой он не может восстановиться, в любом из renderer. Второе предложение появляется только когда ошибка произошла во время запуска fullscreen renderer:
Что делать:
  • Запустите Claude Code снова. Чтобы продолжить беседу, выполните claude --resume в том же каталоге.
  • Если сообщение называет fullscreen renderer, Fullscreen rendering говорит, что делает следующий запуск, что зависит от того, как вы включили fullscreen, и как снова попробовать fullscreen или оставить классический renderer.
До версии 2.1.236 Claude Code выходил без вывода сообщения после этого вида ошибки.

Agent descriptions are over the 15.0k-token limit

Claude Code показывает это предупреждение как уведомление при запуске в представлении беседы, а не на stderr. Объединённые описания ваших subagents, кроме встроенных, превышают 15 000 токенов в соответствии с оценкой Claude Code. Каждый агент считает своё имя плюс его frontmatter description. Claude Code загружает каждого агента независимо от того, превышен ли лимит, поэтому предупреждение не меняет то, что загружается.
Что делать:
  • Сократите frontmatter description ваших файлов агентов или попросите Claude сократить их для вас.
  • Удалите файлы агентов, которые вы больше не используете.

Hook needs quotes around a path with a space

Это уведомление в представлении диалога означает, что скрипт хука не запустился, потому что его путь содержит пробел и не заключён в кавычки. Речь идёт о хуке asyncRewake в форме shell-команды. В его command за интерпретатором, например python3, следует заполнитель пути без кавычек, а итоговый путь содержит пробел. Уведомление начинается с имени события хука и называет скрипт:
Что делать:
  • В command хука, который запускает указанный в уведомлении скрипт, заключите путь в двойные кавычки. В JSON-файле это записывается как "command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\"".

A skill, command, or workflow wasn’t loaded because its name is reserved

Папка skill, frontmatter name, файл или подпапка в .claude/commands/ или saved workflow использует имя anthropic-skills или имя, которое начинается с anthropic-skills:. Claude Code зарезервировал это имя для skills, синхронизированных из claude.ai и не загружает этот элемент. Claude Code показывает это предупреждение как уведомление при запуске в представлении беседы, а не на stderr:
Уведомление называет то, что нужно изменить для первого отклонённого элемента: папку или файл для переименования, строку name: для редактирования или workflow для переименования. Когда было отклонено более одного элемента, уведомление заканчивается счётом, например · 2 more, и debug log называет каждый. Что делать:
  • Переименуйте элемент, который называет уведомление, или отредактируйте строку name:, на которую оно указывает, затем перезагрузите сеанс.
До версии 2.1.282 Claude Code загружал skills и commands с этими именами.

Skill or command name refused

Это уведомление при запуске означает, что Claude Code отклонил имя как минимум одного скилла или пользовательской команды, поэтому элемент не загрузился или загрузился без поля name:
  • Не загружен: Claude Code отклонил имя, под которым известен скилл или команда, например имя каталога, имя файла команды или её подпапки. Элемент отсутствует в меню /, и Claude не может его вызвать. Соответствующая строка в логе отладки выглядит как <name> is not offered.
  • Поле name проигнорировано: Claude Code отклонил поле frontmatter name скилла. Скилл всё равно загружается, но меню / не показывает значение name, и ввод этого значения не вызывает скилл. Соответствующая строка в логе отладки выглядит как <name value> is not shown for <skill>.
Что делать:
  • Запустите Claude Code из оболочки командой claude --debug и найдите в логе отладки [names]. Для каждого имени, учтённого в уведомлении, там есть одна строка. В этой строке некоторые скрытые символы записаны в виде кодов, например \u{200B} для пробела нулевой ширины, чтобы вы видели, где они находятся.
  • Удалите символы, которые не может содержать имя скилла, переименовав папку или файл либо отредактировав строку name:, или сократите имя длиннее 256 символов. Затем перезапустите сессию, если только файл не находится в каталоге, который Claude Code отслеживает на изменения. Если скилл взят из плагина, который написали не вы, попросите автора плагина переименовать его.

Workspace has not been trusted

Claude Code обнаружил правила permissions.allow или записи permissions.additionalDirectories в файле .claude/settings.json или .claude/settings.local.json проекта и не применил их, потому что правила allow из параметров проекта требуют доверия рабочей области. Количество, имя параметра и имя файла в сообщении варьируются в зависимости от вашей конфигурации. На правила deny и ask это не влияет.
Что делать:
  • Выполните claude в каталоге и примите диалог доверия. Project allow rules and workspace trust говорит, какую папку охватывает это принятие.
  • В non-interactive mode с -p диалог не показывается. Установите запись hasTrustDialogAccepted в ~/.claude.json, используя точный ключ projects, который выводит сообщение.
  • Если сообщение называет .claude/settings.local.json и вы запустили Claude Code вне репозитория git или в вашем домашнем каталоге, обновитесь до версии 2.1.200 или позже. Версии 2.1.196 по 2.1.199 рассматривали ваш собственный .claude/settings.local.json как предоставленный репозиторием в этих рабочих областях. На версии 2.1.207 и позже обновления недостаточно вне репозитория git, если вы не доверили папке: определение того, что папка не находится внутри репозитория, запускает git, и Claude Code запускает эту проверку только после того, как вы примете диалог доверия, поэтому используйте первый шаг. Ваш домашний каталог и любой другой configuration home освобождены и не ждут диалога. См. Project allow rules and workspace trust.

Working directory is a network path

Claude Code не добавляет сетевые пути как рабочие каталоги. Поиск сетевого пути может связаться с хостом, который он называет, и на Windows этот контакт может отправить хосту ваши учётные данные, поэтому Claude Code отказывает в пути без его поиска. Вы видите это сообщение при выполнении /add-dir с таким путём или как предупреждение при запуске. Когда оно появляется при запуске, Claude Code запускается без этого каталога.
Пути, которые Claude Code отказывает таким образом, включают:
  • UNC shares такие как \\server\share
  • Пути automount, например /net/<host>, если только вы не запустили Claude Code из каталога внутри automount этого хоста. Чтение внутри этого automount всё равно проходит проверку сетевых путей.
  • Локальные пути, которые достигают сетевого расположения через символическую ссылку или junction
Сопоставленные буквы дисков и пути \\wsl$ не считаются сетевыми путями. Что делать:
  • На Windows сопоставьте share с буквой диска, например с помощью net use Z: \\server\share, и передайте диск при запуске с claude --add-dir Z:\.
  • На macOS или Linux смонтируйте share в локальный путь и добавьте этот путь вместо этого.
  • Если путь находится в permissions.additionalDirectories, удалите его из файла параметров, который его перечисляет.
До версии 2.1.257 Claude Code принимал достижимый сетевой путь как рабочий каталог.

Remote managed settings failed to load

Ваш сеанс имеет право на server-managed settings, но Claude Code не смог их получить или не смог применить то, что вернул сервер, поэтому он показывает это предупреждение в интерактивных сеансах. Причина в скобках называет то, что не удалось, например network error, request timed out или authentication rejected (401). Причина no setting in the server response could be applied as written означает, что сервер ответил, но ни один из параметров, которые он вернул, не прошёл validation. До версии 2.1.282 эта причина читалась как server returned invalid settings. Остальная часть строки говорит, какую политику запускает сеанс:
  • Settings cached from an earlier successful fetch: Claude Code запускает сеанс на этой кэшированной политике, кроме withheld environment variables, и строка читается using cached policy.
  • No cache: Claude Code запускает сеанс без server-managed settings, и строка читается no remote policy applied.
Что делать:
  • Действуйте в соответствии с причиной, которую называет сообщение: для сетевой причины проверьте, что эта машина может достичь api.anthropic.com; для причины аутентификации проверьте вашу регистрацию с помощью /status
  • Для no setting in the server response could be applied as written попросите вашего администратора исправить параметры на сервере
  • Выполните /status или claude doctor для полной диагностики
До версии 2.1.248 Claude Code сообщал о неудачной выборке параметров только в журнале отладки.

Managed settings were not approved

server-managed settings вашей организации включают параметры, которые требуют вашего одобрения, и вы отклонили security approval dialog, поэтому Claude Code выходит без их применения:
Что делать:
  • Запустите Claude Code снова и одобрите диалог, чтобы продолжить в соответствии с параметрами вашей организации. Отклонённый диалог не запоминается, поэтому он появляется снова при следующем запуске.
  • Если вы не уверены в параметре, который перечисляет диалог, спросите того, кто поддерживает управляемые параметры вашей организации, перед одобрением

Managed settings block the default model

managed settings вашей организации блокируют модель, на которую разрешается Default option, и каждую модель, на которую она может перейти. Сеанс, который должен был бы запуститься на Default option, выходит при запуске вместо запуска заблокированной модели. Какое сообщение вы видите, зависит от параметра, который её блокирует. Когда список deniedModels блокирует её, сообщение читается:
Когда список availableModels с availableModelsMatch установленным на "exact" его опускает, сообщение читается:
Что делать:
  • Если вы администрируете параметры, добавьте модель, которую ваши пользователи могут запустить, в availableModels или сузьте записи deniedModels, которые блокируют каждый fallback. Block specific models or versions описывает, как Default option переходит
  • Если вы их не администрируете, отправьте сообщение вашему администратору. Ваши собственные файлы параметров не могут расширить управляемый availableModels или deniedModels список

Managed settings don’t allow this API provider

managed settings вашей организации устанавливают список allowedProviders, и поставщик API сеанса не находится в нём или сеанс использует конечную точку, которая не закреплена так, как требует эта запись. Claude Code отказывает при запуске, перед входом или когда сеанс в следующий раз свяжется с API. Сообщение начинается с разрешённых поставщиков:
Когда список пуст, сообщение читается вместо этого:
Когда каждая запись не распознана, скобка читается (allowedProviders lists only unrecognized entries) вместо этого. Что делать:
  • Следуйте шагам To continue: сообщения
  • Если вы администрируете параметры, строки сообщения, начинающиеся с Admins:, называют запись для добавления или значение для закрепления, и запись allowedProviders говорит, какой блок env источника может закрепить его

MCP server is blocked by enterprise managed policy

Вы выбрали Reconnect на сервере в /mcp или снова включили отключённый сервер там, и параметр, который restricts MCP servers блокирует этот сервер. Claude Code отказывает в подключении и показывает:
Любой из этих параметров может создать сообщение:
  • Запись deniedMcpServers, которая соответствует серверу, включая одну в вашем собственном ~/.claude/settings.json или в .claude/settings.json проекта
  • Список allowedMcpServers, которому сервер не соответствует
  • strictPluginOnlyCustomization с заблокированным mcp, который блокирует серверы, настроенные в ~/.claude.json и .mcp.json
  • disableClaudeAiConnectors, когда сервер является claude.ai connector
Что делать:
  • Проверьте ваши собственные файлы параметров пользователя и проекта на наличие одного из этих параметров и измените или удалите его
  • Если ни один из ваших собственных параметров не объясняет блокировку, спросите вашего администратора, какой управляемый параметр блокирует сервер
До версии 2.1.257 Reconnect и повторное включение в /mcp могли подключить сервер, который обновление политики в середине сеанса заблокировало.

Managed settings document could not be parsed

Ваша организация развёртывает managed settings, и один из развёрнутых документов присутствует, но не может быть проанализирован как объект JSON, поэтому Claude Code выходит с кодом 1 при запуске вместо запуска без политики, которую несёт документ. Строка называет неудачный источник перед сообщением:
Источник является одним из:
  • Путь файла managed-settings.json или drop-in файла под managed-settings.d
  • Профиль управляемых параметров macOS, per-user managed preferences или device-level managed preferences
  • Значение реестра Windows, Registry: HKLM\SOFTWARE\Policies\ClaudeCode\Settings
Find entries Claude Code dropped перечисляет то, что делает каждый источник непарсируемым. Claude Code отказывает в запуске даже когда другой источник администратора доставляет действительную политику. Вы видите эту ошибку в интерактивных сеансах, claude -p, сеансах Agent SDK, background sessions и большинстве подкоманд, включая claude doctor. Отказ закрывается намеренно: параметры в документе, который Claude Code не может проанализировать, не могут быть применены, и запуск в любом случае запустил бы сеансы без элементов управления организации. Проблема схемы в парсируемом документе не создаёт эту ошибку. Find entries Claude Code dropped охватывает то, что Claude Code делает с одной. Когда каталог managed-settings.d/ существует, но не может быть перечислен, Claude Code сообщает Managed settings drop-in directory could not be read: с последующей базовой ошибкой вместо этого. Find entries Claude Code dropped охватывает, когда отказ при чтении выходит при запуске. Что делать:
  • Если вы администрируете машину, исправьте названный документ так, чтобы он анализировался как объект JSON, или удалите файл, профиль или значение реестра. Пустой managed-settings.json считается {} и не блокирует запуск.
  • Если нет, попросите вашего администратора исправить развёрнутый документ. Ничто в ваших собственных файлах параметров не вызывает и не очищает эту ошибку.

Unable to read managed policy settings

Ваша организация развёртывает managed settings, и один из развёрнутых источников существует, но не мог быть прочитан по причине, такой как ошибка ввода-вывода, а не отказ операционной системы в чтении. Без другого источника администратора, поставляющего политику, Claude Code выходит при запуске, а не запускается без политики, которую может нести источник:
В том же состоянии потоки входа, запросы API из уже работающего сеанса и сервер claude gateway отказываются с вариантом первой строки, которая называет allowedProviders. Чтение, которое операционная система отклонила, например на файле только для root, не создаёт этот выход: сеанс запускается без политик этого источника. Для источника, который не может быть проанализирован, Claude Code выходит с другим сообщением, называющим источник. Что делать:
  • Если вы администрируете машину, исправьте проблему, которую называет строка Detail:, чтобы развёрнутый источник мог быть прочитан, или удалите источник
  • Если нет, отправьте сообщение вашему администратору. Ничто в ваших собственных файлах параметров не вызывает и не очищает эту ошибку
До версии 2.1.285 только сеансы, вошедшие с учётными данными claude.ai или Claude Console, выходили с этим сообщением, и чтение, которое операционная система отклонила, также создавало его.

otelHeadersHelper failed

Claude Code показывает это предупреждение как уведомление в интерфейсе терминала, один раз за интерактивный сеанс, когда скрипт otelHeadersHelper не удаётся или выводит результат, который не соответствует требованиям скрипта. Пока скрипт продолжает не удаваться, экспорты не удаются и ваш backend телеметрии не получает ничего из сеанса. Текст после See /status: говорит, что не удалось, например код выхода скрипта, за которым следует его вывод ошибки:
Что делать:
  • Выполните /status для чтения деталей отказа.
  • Исправьте скрипт так, чтобы он выходил 0 в течение 30 секунд и выводил объект JSON значений заголовков строк на stdout. См. требования скрипта.
  • Если ваша организация развёртывает скрипт через managed settings, попросите того, кто их поддерживает, исправить это.
В non-interactive mode с -p, тот же отказ появляется на stderr как otelHeadersHelper failed (OpenTelemetry export headers unavailable): <error> вместо этого.

headersHelper not run

Claude Code подключил MCP сервер с его статическими headers только и пропустил headersHelper сервера, потому что помощник является shell командой и папка не имеет сохранённого доверия. Папка получает сохранённое доверие, когда вы устанавливаете её запись в ~/.claude.json вручную или, вне вашего домашнего каталога, когда вы принимаете диалог доверия для неё в интерактивном сеансе. См. Trust a folder before its headersHelper runs для того, какие серверы применяется эта проверка. Claude Code записывает эту строку в non-interactive mode только, один раз на сервер. В интерактивном сеансе он записывает тот же отказ в журнал отладки вместо этого.
Ключ projects, который выводит сообщение, является папкой, на которой Project allow rules and workspace trust говорит Claude Code ключи доверия. Принятие диалога доверия для родительской папки не удовлетворяет проверку, и сеанс -p или SDK не удовлетворяет её либо. Что делать:
  • Выполните claude в папке, которую называет сообщение, примите диалог доверия, затем выполните вашу команду -p или SDK снова
  • Установите запись hasTrustDialogAccepted в ~/.claude.json самостоятельно, используя точный ключ projects, который выводит сообщение
  • Если вы запустили сеанс в вашем домашнем каталоге, работайте из каталога проекта, которому вы доверяете. Когда вы принимаете диалог доверия в вашем домашнем каталоге, Claude Code держит это доверие только для текущего сеанса.

Malformed Tool(content) rule

permission rule в одном из ваших файлов параметров не имеет формы Tool или Tool(content), например потому что текст следует за закрывающей скобкой или одна из скобок отсутствует. Claude Code пропускает правило и перечисляет его в диалоге недействительных параметров при запуске интерактивного сеанса и в выводе claude doctor:
Что делать:
  • В файле параметров, указанном в сообщении, переписать правило так, чтобы оно заканчивалось на закрывающей скобке, например Bash(ls *) вместо Bash(ls) x
  • Оставьте скобки внутри содержимого как они есть. Они буквальные, поэтому правило такое как Edit(./Finance (2024)/**) действительно без экранирования
До версии 2.1.260 Claude Code сообщал о правиле с несовпадающими скобками как Mismatched parentheses.

Is not matched by file permission checks

Claude Code обнаружил Write, NotebookEdit, MultiEdit или Glob permission rule с путём в одном из ваших settings files, в managed settings или в значении флага --allowedTools, --disallowedTools или --settings. Он проверяет разрешения файлов только против правил Edit и Read, поэтому он никогда не консультирует правило пути, которое называет один из других инструментов файлов. Он сохраняет правило и ничего больше не меняет; предупреждение называет правило, его источник в скобках и замену для записи:
Что делать:
  • Замените Write(path), NotebookEdit(path) и устаревшие MultiEdit(path) правила на Edit(path). Правила Edit охватывают все инструменты редактирования файлов.
  • Кроме как в --allowedTools, где Claude Code принимает правило Glob без предупреждения, замените правила Glob(path) на Read(path).
  • Исправьте правило в источнике, который называет предупреждение в скобках: путь файла параметров или сам флаг для --allowed-tools и --disallowed-tools. Путь claude-settings-<hash>.json, который не существует на диске, обозначает встроенное значение --settings. Исправьте JSON, который вы передаёте этому флагу.
  • Оставьте простые правила имён инструментов такие как Write или Glob в покое. Claude Code соответствует им на tool level и не предупреждает о них.
  • Если источник читает managed policy settings, перенаправьте предупреждение тому, кто поддерживает ваши управляемые параметры, так как вы не можете очистить его самостоятельно.
В background session или с --output-format json или stream-json, Claude Code записывает предупреждение в журнал отладки вместо stderr, поэтому вывод, читаемый машиной, остаётся чистым. Выполните с --debug для захвата его в ~/.claude/debug/<session-id>.txt. До версии 2.1.210 Claude Code принимал эти правила без предупреждения.

Has a wildcard before the rest of the command

Claude Code обнаружил правило allow Bash, чей * приходит перед более поздним словом, которое определяет, какая это команда, например Bash(git * main) или Bash(git -C * status *), в одном из ваших settings files, в managed settings или в значении флага --allowedTools или --settings. * соответствует любому тексту, включая опции, вставленные в этой позиции: Bash(git * main) также одобряет git -c core.fsmonitor=<script> diff main, где -c заставляет git запустить программу, которую называет команда. Wildcard patterns показывает правила соответствия. Предупреждение существует, чтобы вы могли сузить правило, чей подстановочный знак шире, чем вы предполагали. Claude Code сохраняет правило и ничего не меняет о том, как оно соответствует; предупреждение называет правило и его источник в скобках:
Что делать:
  • Замените * перед подкомандой на точное значение, которое вы имеете в виду: Bash(git checkout main) вместо Bash(git * main).
  • Переместите каждый * после подкоманды: Bash(git status *) вместо Bash(git -C * status *). Напишите одно правило на подкоманду, которую вы хотите разрешить.
  • Исправьте правило в источнике, который называет предупреждение в скобках: путь файла параметров или сам флаг --allowed-tools. Путь claude-settings-<hash>.json, который не существует на диске, обозначает встроенное значение --settings. Исправьте JSON, который вы передаёте этому флагу.
  • Если источник читает managed policy settings, перенаправьте предупреждение тому, кто поддерживает ваши управляемые параметры, так как вы не можете очистить его самостоятельно.
В background session или с --output-format json или stream-json, Claude Code записывает предупреждение в журнал отладки вместо stderr, поэтому вывод, читаемый машиной, остаётся чистым. Выполните с --debug для захвата его в ~/.claude/debug/<session-id>.txt. До версии 2.1.246 Claude Code принимал эти правила без предупреждения.

Denying Bash also turns off the PowerShell tool

Вы полностью отключили инструмент Bash, например с помощью --disallowedTools Bash или правила deny в виде просто Bash или Bash(*) в одном из ваших файлов настроек. В Windows с установленным Git Bash запрет Bash также отключает инструмент PowerShell, поэтому сессия запускается без инструмента оболочки. Claude Code выводит это предупреждение при запуске:
Что делать:
  • Чтобы Claude использовал PowerShell, установите CLAUDE_CODE_USE_POWERSHELL_TOOL в 1 в своём окружении или в блоке env файла настроек, как показано в разделе Включение инструмента PowerShell. После этого инструмент PowerShell остаётся включённым наряду с вашим правилом deny для Bash.
  • Чтобы блокировать отдельные команды, а не весь инструмент, замените запись Bash на правила с ограниченной областью действия, например Bash(git push *), в том же файле настроек или флаге. У Claude остаётся инструмент Bash, а инструмент PowerShell остаётся отключённым, пока вы также не установите переменную или не добавите правило разрешений PowerShell с ограниченной областью действия.
В фоновой сессии или с --output-format json либо stream-json Claude Code записывает предупреждение в лог отладки, а не в stderr. Запустите с --debug, чтобы сохранить его в ~/.claude/debug/<session-id>.txt. До версии 2.1.287 Claude Code отключал инструмент PowerShell так же, но без вывода предупреждения.

crossSessionInbound must be one of accept, hold, refuse

Файл параметров устанавливает crossSessionInbound на значение, которое Claude Code не распознаёт, например опечатка "reject". Второе предложение предупреждения зависит от того, какой файл содержит значение; в пользовательском, проектном, локальном или файле --settings оно читается:
В managed settings Claude Code рассматривает нераспознанное значение как refuse, наиболее ограничивающее значение, и предупреждение говорит, что сообщения между сеансами отклоняются до тех пор, пока администратор не исправит это. Для того, как hold объединяется со значениями в ваших других файлах параметров, см. crossSessionInbound. Что делать:
  • Установите ключ на "accept", "hold" или "refuse" или удалите его
  • Когда предупреждение называет управляемые параметры, попросите администратора исправить значение
До версии 2.1.248 Claude Code игнорировал нераспознанное значение без предупреждения.

ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name

Вы задали для ANTHROPIC_FOUNDRY_RESOURCE значение, отличное от простого имени ресурса Microsoft Foundry, например URL эндпоинта или его имя хоста. Claude Code отклонил значение до отправки запроса. Сообщение появляется вместо ответа Claude, а не как предупреждение при запуске:
Что делать:
  • Задайте в ANTHROPIC_FOUNDRY_RESOURCE только имя ресурса и перезапустите Claude Code. Для эндпоинта https://my-resource.services.ai.azure.com/anthropic имя — my-resource.
  • Чтобы вместо этого указать полный URL эндпоинта, задайте URL в ANTHROPIC_FOUNDRY_BASE_URL и удалите ANTHROPIC_FOUNDRY_RESOURCE, затем перезапустите Claude Code. Claude Code принимает только одну из этих двух переменных.

The 200K limit isn’t enforced

Вы установили CLAUDE_CODE_DISABLE_1M_CONTEXT=1, что обычно заставляет auto-compaction держать сеансы на 1M-context моделях в окне 200K, но нет порога compaction, который ограничивает этот сеанс на или ниже 200K, поэтому беседа может расти за его пределы.
Claude Code применяет лимит 200K самостоятельно для каждой модели, которую он распознаёт как имеющую собственное окно 1M, и для ID моделей, которые он не распознаёт, он compacts в окне, которое он предполагает. Предупреждение появляется, когда другая конфигурация побеждает это применение:
  • ID модели не является одним, который Claude Code распознаёт, например LLM gateway alias, и вы установили CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1 или повысили предполагаемое окно выше 200K с CLAUDE_CODE_MAX_CONTEXT_TOKENS. В этом случае сообщение также предлагает or update to a Claude Code version that recognizes <model> как средство.
  • Beta context-1m запрошенный через ANTHROPIC_BETAS или флаг --betas всё ещё запрашивает API для окна 1M на модели, которая принимает эту бету, в то время как ничего не compacts сеанс на 200K
Что делать:
  • Установите CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 или параметр autoCompactWindow на 200000, чтобы auto-compaction compacts на границе 200K
  • Если сообщение называет ID модели, который эта версия не распознаёт, выполните claude update. Версия, которая распознаёт ID как 1M-context модель, применяет лимит без дополнительной конфигурации.
  • Если вы хотите, чтобы сеанс использовал полное окно модели вместо этого, отмените CLAUDE_CODE_DISABLE_1M_CONTEXT; предупреждение сообщает только, что лимит 200K не применяется
В background session или с --output-format json или stream-json, Claude Code записывает предупреждение в журнал отладки вместо stderr.

Unrecognized model ID on a request

Claude Code отправил запрос для ID модели, который ваша версия Claude Code не распознаёт, и не нашёл запись modelOverrides, которая отображает этот ID на модель, которую он распознаёт. Claude Code всё ещё отправляет запрос с ID, как вы его настроили, и не выходит и не переключает модели.
В скрипте или harness, который читает stderr, совпадайте с префиксом [claude-code:unrecognized_model]. После префикса и одного пробела Claude Code записывает однострочный объект JSON. Claude Code может добавлять поля к нему в более поздней версии, поэтому игнорируйте любое поле, которое вы не ожидаете. Он записывает по крайней мере эти два:
  • model: строка модели, как вы её настроили
  • query_source: путь запроса, который использовал модель. Claude Code сообщает sdk для запуска -p и значение, которое начинается с agent: для subagent.
Claude Code записывает строку в одно из двух мест, в зависимости от того, как вы его запускаете:
  • В non-interactive mode с -p, Claude Code записывает её в stderr под каждым --output-format, поэтому вы можете анализировать stdout без фильтрации строки
  • В интерактивном сеансе или background session, Claude Code записывает её в журнал отладки вместо этого; выполните с --debug для захвата её в ~/.claude/debug/<session-id>.txt
Claude Code записывает строку один раз на строку модели на процесс. Он записывает отдельную строку для каждого дополнительного нераспознанного ID, например одного, который subagent или background functionality использует. Claude Code не записывает строку для ID поставщиков, которые он разрешает на модель, которую он распознаёт, например Amazon Bedrock us.anthropic.claude-... ID, ID Google Cloud’s Agent Platform с суффиксом версии @ и имена развёртывания Microsoft Foundry, которые содержат ID модели Claude. Claude Code проверяет модель позади Amazon Bedrock application inference profile ARN а не сам ARN. Он не записывает строку для ARN, который он не может разрешить, например неправильно введённый. Что делать:
  • Если вы установили ID намеренно, например LLM gateway alias, добавьте запись modelOverrides в ваш settings file с ID как его значение. Используйте ID модели Anthropic как ключ, а не семейный alias такой как opus. Для my-proxy-model из примера строки добавьте эту запись:
    Claude Code затем рассматривает my-proxy-model как claude-opus-4-6 и прекращает записывать строку.
  • Если ID называет модель новее, чем ваша версия Claude Code, выполните claude update
  • Если ID является опечаткой, исправьте его в любом из places you can set a model или alias variables, который его содержит. Если query_source начинается с agent:, исправьте его там, где вы устанавливаете subagent’s model вместо этого.
До версии 2.1.233 Claude Code не записывал строку, когда отправлял запрос для ID модели, который он не распознавал.

Stale sandbox mask files left by a killed session

claude doctor выводит это предупреждение в своей диагностике, и /status перечисляет ту же строку. Оно появляется на Linux и WSL2, когда sandboxing включена с изоляцией файловой системы. Пока выполняется sandboxed команда, sandbox держит отказ в записи на файл, который ещё не существует, создавая 0-байтовый заполнитель только для чтения там, и удаляет его впоследствии. Сеанс, убитый перед тем, как эта очистка запустится, например SIGKILL, оставляет заполнители позади. Более поздние сеансы привязывают их только для чтения снова при каждом запуске, поэтому запись параметров такая как сохранение “Yes, and don’t ask again” не удаётся там, где она сидит.
Что делать:
  • Выйдите из любого другого сеанса Claude Code, работающего в этом проекте, затем удалите каждый перечисленный файл с rm. Предупреждение называет до трёх файлов и считает остальное, поэтому переустановите claude doctor после удаления до тех пор, пока предупреждение больше не появляется. Заполнитель, который sandbox другого сеанса всё ещё использует, является живой частью защиты от записи этого сеанса
  • Если выбор разрешения, который вы сохранили с “Yes, and don’t ask again” не прижился, сохраните его снова после удаления заполнителя
До версии 2.1.257 claude doctor не отмечал эти файлы; более ранние версии оставляют те же заполнители позади, когда сеанс убивается.

Ответы кажутся ниже обычного качества

Если ответы Claude кажутся менее способными, чем вы ожидаете, но ошибка не отображается, причина обычно в состоянии разговора, а не в самой модели. Claude Code не молча меняет версии модели. Он может переключиться на резервную модель в этих случаях:
  • Настроенный --fallback-model берёт на себя управление после ошибки доступности только для этого хода с уведомлением в расшифровке
  • Проверка запуска Amazon Bedrock или Google Cloud’s Agent Platform обнаруживает, что ваша модель по умолчанию недоступна, или ваша учётная запись теряет доступ к ней во время сеанса
  • Автоматический переход на резервную модель на Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5 и Opus 5 переводит сеанс на резервную модель категории с флагом, когда у этой категории она есть, и показывает уведомление в расшифровке
Проверка выбора модели ниже ловит второй и третий случаи; первый появляется как уведомление в расшифровке, а не как изменение /model. Конфигурация модели объясняет, когда применяется каждый переход на резервную модель. Сначала проверьте следующее:
  • Выбор модели: запустите /model, чтобы подтвердить, что вы используете ожидаемую модель. Предыдущий выбор /model или переменная окружения ANTHROPIC_MODEL могут привести вас к меньшей модели, чем вы предполагали.
  • Уровень усилий: запустите /effort, чтобы проверить текущий уровень рассуждений и повысить его для сложной отладки или проектной работы. Значения по умолчанию варьируются в зависимости от модели, поэтому проверьте перед тем, как предполагать, что вы ниже максимума. См. Отрегулируйте уровень усилий для значений по умолчанию для каждой модели и сокращение ultrathink.
  • Давление контекста: запустите /context, чтобы увидеть, насколько заполнено окно. Если оно близко к ёмкости, запустите /compact в естественной точке разрыва или /clear, чтобы начать заново. См. Изучите окно контекста, чтобы узнать, как auto-compact влияет на предыдущие ходы.
  • Устаревшие инструкции: большие или устаревшие файлы CLAUDE.md и определения инструментов MCP потребляют контекст и могут направлять ответы. Проверка /doctor отмечает файлы памяти большого размера и неиспользуемые расширения, а /context показывает использование токенов инструментов MCP. До версии 2.1.205 /doctor открывал экран диагностики, который отмечал файлы памяти большого размера и определения подагентов.
Когда ответ идёт неправильно, откат обычно работает лучше, чем ответ с исправлениями. Нажмите Esc дважды или запустите /rewind, чтобы вернуться к моменту перед неправильным ходом, затем переформулируйте подсказку с большей конкретикой. Исправление в потоке сохраняет неправильную попытку в контексте, что может привязать более поздние ответы к ней. См. Контрольные точки. Если качество всё ещё кажется неправильным после проверки вышеуказанного, запустите /feedback и опишите, что вы ожидали в сравнении с тем, что вы получили. Обратная связь, отправленная таким образом, включает расшифровку разговора, что является самым быстрым способом для Anthropic диагностировать реальную регрессию. См. Сообщить об ошибке, если /feedback недоступен в вашей среде. Если Claude предупреждает о подозреваемой инъекции подсказки, или отказывает в запросе из-за подозреваемой инъекции, и текст, который называет предупреждение, — это контекст, который Claude Code добавляет к разговору автоматически, а не содержимое файла или веб-сайта, запустите claude update и повторите попытку. Если предупреждение повторяется после обновления, сообщите об этом вместо того, чтобы вставлять отмеченное содержимое обратно в подсказку. До версии 2.1.201 Sonnet 5 отказывал в некоторых запросах таким же образом.

Сообщить об ошибке

Для ошибок компонентов, которые не рассматриваются на этой странице, см. соответствующее руководство:
  • Серверу MCP не удалось подключиться или пройти аутентификацию: MCP
  • Скрипт hook не выполнился или заблокировал инструмент: Debug hooks
  • Отказано в доступе или ошибки файловой системы при установке: Troubleshoot installation and login
Если ошибка не указана здесь или предложенное исправление не помогает:
  • Запустите /feedback внутри Claude Code, чтобы отправить стенограмму и описание в Anthropic. Команда также предлагает открыть предварительно заполненную проблему GitHub. Отправка в Anthropic требует аутентификации. На Amazon Bedrock, Google Cloud’s Agent Platform, Microsoft Foundry и других сторонних поставщиков, или когда учетные данные Anthropic не настроены, /feedback сохраняет локальный архив, который вы можете отправить представителю вашей учетной записи Anthropic.
  • Запустите claude doctor из вашей оболочки для диагностики только для чтения вашей установки или запустите проверку /doctor внутри Claude Code, чтобы найти и исправить проблемы настройки
  • Проверьте status.claude.com на наличие активных инцидентов
  • Поищите существующие проблемы на GitHub