SpyBara
Go Premium

errors.md 2026-10-01 23:59 UTC to 2026-10-02 11:59 UTC

This page contains 893 additions and 829 deletions.

2026
Thu 1 23:59 Fri 2 11:59

Справочник по ошибкам

Найдите сообщения об ошибках Claude Code с объяснением их значения и способов исправления.

На этой странице перечислены ошибки времени выполнения, которые отображает Claude Code, и способы восстановления после каждой из них, а также что проверить, когда ответы кажутся неправильными без ошибки. Для ошибок установки, таких как command not found или сбои TLS во время установки, см. Устранение неполадок при установке и входе.

За исключением ошибок Wrapper и IDE, которые выводит запускающая программа, а не сам Claude Code, эти ошибки и команды восстановления применяются во всех интерфейсах: CLI, приложении Desktop и облачных сессиях, поскольку все три используют один и тот же Claude Code CLI. Для других проблем, специфичных для конкретного интерфейса, см. раздел устранения неполадок на странице этого интерфейса.

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

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

Сообщение Раздел
API Error: 500 Internal server error Server errors
API Error: Repeated 529 Overloaded errors Server errors
Opus is experiencing high load / Fable is experiencing high load Server errors
Request timed out Server errors, или Network если сообщение упоминает ваше интернет-соединение
API Error: No response from API Server errors
Server error mid-response. The response above may be incomplete. Server errors
Connection lost mid-response / Your computer went to sleep mid-response / The response stopped arriving Server errors
Connection closed mid-response / Response stalled mid-stream Server errors
Part of the response never arrived / The response stream was malformed Server errors
API Error: Content block not found / API Error: Content block already closed / API Error: Stream event unreadable Server errors
Connection lost before a response was produced / Your computer went to sleep before a response was produced / The response stalled before a response was produced Automatic retries
Connection closed while thinking / Response stalled while thinking Automatic retries
Connection lost while your computer was asleep Automatic retries
<model> is temporarily unavailable, so auto mode cannot determine the safety of... Server errors
Auto mode could not evaluate this action and is blocking it for safety Server errors
Auto mode classifier transcript exceeded context window Server errors
Agent aborted: auto mode classifier request refused by the safety safeguard Server errors
The server-side auto mode classifier gave no verdict Server errors
Auto mode is unavailable — the server returned no safety verdict for the last 10 responses Server errors
Agent terminated early due to an API error Server errors
You've hit your session limit / You've hit your weekly limit / You've hit your Opus limit / You've hit your Sonnet limit Usage limits
Usage credits required for 1M context Usage limits
the prompt to confirm went unanswered — nothing was sent Usage limits
Server is temporarily limiting requests Usage limits
Request rejected (429) Usage limits
Credit balance is too low Usage limits
You've hit your monthly spend limit / You've hit your individual spend limit / You've hit your org's monthly spend limit / You've hit your channel's monthly spend limit / You've hit your team's shared budget / You've hit your individual usage limit Usage limits
Could not update your spend limit Usage limits
spend limit reached / spend limit unavailable Usage limits
Not logged in · Please run /login Authentication
Couldn't save your login Authentication
Authentication required · Sign in again to continue Authentication
Could not resolve authentication method Authentication
Invalid API key Authentication
Your apiKeyHelper script is failing Authentication
Invalid auth token · Fix external auth token Authentication
Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable Authentication
Invalid request header from the environment · Fix the environment variable Authentication
This organization has been disabled Authentication
Your organization has disabled API key authentication Authentication
Your organization has disabled Claude subscription access Authentication
Routines are disabled by your organization's policy Authentication
Remote Control is only available when using Claude via api.anthropic.com Authentication
OAuth token refresh failed — run /login to re-authenticate Authentication
JWT refresh failed: no OAuth token — run /login Authentication
Claude.ai login expired Authentication
Claude.ai login was rejected — run /login, then /remote-control Authentication
OAuth token unavailable — run /login to restore Remote Control Authentication
Signed out of Claude — run /login, then /remote-control Authentication
signed-in claude.ai account or organization changed on this machine Authentication
Remote Control stopped — the app running this session is now signed in to a different Claude account Authentication
Remote Control stopped — the app running this session is signed out of Claude Authentication
Couldn't verify your organization's policy for remote control Troubleshoot Remote Control
Remote Control is disabled by your organization's policy Troubleshoot Remote Control
Remote Control was turned off by your organization's policy Troubleshoot Remote Control
OAuth token revoked / OAuth token has expired Authentication
Failed to authenticate: OAuth token revoked Authentication
Your account does not have access to Claude. Please login again or contact your administrator. Authentication
API Error: 401 Invalid authentication credentials Authentication
Login expired · Please run /login Authentication
Failed to start OAuth callback server Authentication
Claude login not accepted · Run /login, then try again Authentication
Artifacts need a claude.ai login Authentication
Not signed in to the Cloud gateway — run /login. Authentication
Administrator policy requires a Cloud gateway sign-in on this machine Authentication
Failed to authenticate: OAuth session expired and could not be refreshed Authentication
Could not refresh your login because another Claude Code process is refreshing it Authentication
Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh Authentication
Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted Authentication
Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted Authentication
Anthropic profile login expired · Re-authenticate your Anthropic profile Authentication
Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile Authentication
does not meet scope requirement user:profile Authentication
claude.ai rejected the session token / session token rejected Authentication
MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate) Authentication
rejected the credential from its headersHelper / rejected the Authorization header in its config Authentication
MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate Authentication
MCP server "<name>" requires re-authorization (token expired) Authentication
This server's URL is missing or not a valid URL, so sign-in can't start Authentication
Issuer mismatch in authorization response (RFC 9207) Authentication
Refusing to send credentials to non-https token endpoint / <short-name> from the MCP SDK for <server-url> Authentication
Cloud gateway session expired — run /login to reconnect. Authentication
Cloud gateway <url> no longer accepts this session Authentication
Sign-in timed out while waiting for you to continue. Try again. Authentication
AWS credentials expired or invalid Authentication
AWS authentication failed Authentication
Google Cloud credentials expired or invalid Authentication
Google Cloud authentication failed Authentication
Microsoft Foundry authentication failed Authentication
Gateway refused the request Authentication
Could not load AWS credentials / Could not load Google Cloud credentials Authentication
AWS default-chain credential resolve timed out Authentication
Timed out after 60s waiting for AWS Authentication
A request to AWS timed out. Check your network and proxy settings, then try again. Authentication
Could not load the default credentials on Google Cloud's Agent Platform Authentication
Unable to connect to API Network
Connection refused — / Can't reach the API server — / No internet route — / Couldn't connect through your proxy / Connection dropped, каждое с кодом ошибки в скобках Network
Unable to connect to Anthropic services during setup Network
Socket is closed Network
Waiting for API response · will retry in Automatic retries, или Network если это продолжается
API returned an empty or malformed response Network
Streaming response ended before any complete data was received Network
Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream" Network
SSL certificate verification failed Network
SSL certificate error (...) during login or startup Network
unable to get local issuer certificate Network
403 with x-deny-reason: host_not_allowed in a cloud or routine session Network
proxy refused the connection Network
403 with This GraphQL query is not enabled for this session in a cloud session GitHub proxy
The cloud environments service returned an empty response / The cloud environments service returned a response in an unexpected format Network
Couldn't reconnect to your Remote Control session Network
N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed. Network
Couldn't share the transcript. Network
Couldn't send feedback Network
Prompt is too long / Input is too long for requested model Request errors
Prompt is too long · automatic compaction failed: Request errors
Prompt is too long · this conversation is a single exchange / A single-exchange conversation cannot be compacted Request errors
Context limit reached · /compact or /clear to continue Request errors
Context limit reached · /clear to continue Request errors
capability_rejected: prompt_too_long on a Claude apps gateway session Request errors
upstream rejected the request / request too large for this upstream on a Claude apps gateway session Upstream error messages
upstream rate limit exceeded on a Claude apps gateway session Upstream error messages
all upstreams failed (N attempted) on a Claude apps gateway session Upstream error messages
Claude Code may not be enabled for your organization after a Claude apps gateway sign-in Claude apps gateway troubleshooting
Context exceeds the ...-token limit by ... tokens in /context output Request errors
Request too large Request errors
Request too large for the API's 32MB request limit Request errors
Image was too large Request errors
Unable to resize image Request errors
PDF too large / PDF is password protected / pdftoppm is not installed Request errors
Extra inputs are not permitted Request errors
API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid / Property keys should match pattern Request errors
tool_use.name: String should have at most 200 characters Request errors
There's an issue with the selected model Request errors
Model ... is not a recognized model id Request errors
Model ... not found Request errors
Couldn't confirm model ... with the API Request errors
API error: ... · model not changed Request errors
Claude Opus is not available with the Claude Pro plan Request errors
Claude Code ... does not support this model; version ... or newer is required Request errors
Claude Code ... is older than the minimum version required by your organization's policy Request errors
Model ... is restricted by your organization's settings Request errors
Model ... is not available. Your organization restricts model selection. Request errors
Can't switch to the default model Request errors
Model switch ... blocked by a PreModelSwitch hook Request errors
couldn't save it as your default / couldn't confirm it was saved as your default Request errors
thinking.type.enabled is not supported for this model Request errors
Effort '<level>' isn't available with thinking turned off on this model Request errors
effort '<level>' is not supported when thinking is disabled Request errors
max_tokens must be greater than thinking.budget_tokens Request errors
API Error: 400 due to tool use concurrency issues Request errors
API Error: 400 orphaned tool_result in conversation history Request errors
API Error: 400 duplicate tool_use ID in conversation history Request errors
Invalid data in redacted_thinking block Request errors
[Unsupported tool content removed] Request errors
role 'system' must precede an 'assistant' message Request errors
Invalid encrypted_content in search_result block / Invalid encrypted_index in text block / Failed to decrypt web search result content Request errors
Invalid encrypted_stdout in encrypted_code_execution_result block Request errors
server_tool_use.name: Input should be on every turn of a resumed session Request errors
<model> can't help with this. Start a new session to continue Request errors
Claude Code is unable to respond to this request, which appears to violate our Usage Policy Request errors
<model>'s safeguards flagged this message Request errors
<model>'s safeguards flagged this session Request errors
<model> has safety measures that flagged this message for a cybersecurity topic Request errors
Installation was killed before it could finish (exit code 137) Installation errors
The connection dropped while downloading the update Installation errors
Download timed out: exceeded the total deadline Installation errors
--bg and --print conflict Command-line errors
Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one. Command-line errors
Cloud sessions cannot be created from a --restricted session Command-line errors
Cloud sessions are disabled by your organization's policy Command-line errors
Couldn't verify your organization's policy for cloud sessions Command-line errors
Error: --json-schema is not a valid JSON Schema Command-line errors
Error: Invalid --agents configuration: Command-line errors
Error: --agents takes a JSON object, or a file path only with --print (-p) Command-line errors
Error: --agents file not found Command-line errors
Error: Settings file exceeds the 2MiB limit Command-line errors
The current directory no longer exists (it was deleted or moved) / Can't read the current directory Command-line errors
Temp directory <dir> ... Refusing to use it / ENOSPC: no space left on device, mkdir '<dir>' Command-line errors
couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded Command-line errors
Error: Workspace not trusted when starting Remote Control Command-line errors
`<flag>` before `remote-control` is not carried over to the sessions Remote Control starts Command-line errors
`claude import` is not yet available in this build Command-line errors
Could not read Claude Code config Command-line errors
Could not import <server>: <reason> Command-line errors
Cannot add MCP server to scope: managed Command-line errors
Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide Command-line errors
is Anthropic-hosted and doesn't support local OAuth Command-line errors
Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes Command-line errors
MCP server "<name>" was not saved to / was not removed from Command-line errors
MCP server "<name>" may not have been saved / may not have been removed Command-line errors
Server rejected the Authorization header minted by the configured headersHelper Command-line errors
Error: MCP tool <name> (passed via --permission-prompt-tool) not found Command-line errors
OAuth callback port <port> is already in use — another process may be holding it Command-line errors
No available ports for OAuth redirect Command-line errors
Shell command failed for pattern "...", from /security-review or any skill that injects dynamic context Command-line errors
Shell command permission check failed for pattern "...", from a skill that injects dynamic context Command-line errors
Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found Command-line errors
Input must be provided either through stdin or as a prompt argument when using --print Command-line errors
Error: Input contained only whitespace Command-line errors
Blank prompt — the message was only whitespace, so nothing was sent to the model. Command-line errors
Error: stream-json input carried over 256M characters with no newline Command-line errors
Unknown command: /<name>, with or without a Did you mean suggestion Command-line errors
Diff is too large for ultrareview / PR #<N> is too large for ultrareview Command-line errors
Could not find merge-base with <branch> Command-line errors
Your checkout has no branches (detached HEAD only) Command-line errors
Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected Command-line errors
Your connected GitHub account can't see <owner>/<repo> Command-line errors
The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead Command-line errors
Not uploading this working tree with the upload cannot follow that setting Command-line errors
GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud Command-line errors
Single sign-on authorization needed Command-line errors
Failed to resume the conversation Command-line errors
No conversation found with session ID: <session-id> Command-line errors
Windows reported an error (EBADF) when Claude Code read this session's transcript file Command-line errors
Cannot switch renderers in this session Command-line errors
Cannot switch renderers while work is running in the background Command-line errors
Couldn't open Claude Desktop Command-line errors
Failed to open Claude Desktop. Please try opening it manually. Command-line errors
Couldn't read your Zed keymap / Couldn't back up your Zed keymap / Couldn't update your Zed keymap Command-line errors
Your Zed keymap isn't a readable list of keybindings Command-line errors
Skill usage reports are not available on this connection. Command-line errors
Custom output styles can't be selected over Remote Control or from a relayed message Command-line errors
Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load Command-line errors
`plugin eval` is currently in early access / `plugin eval` is currently unavailable Plugin errors
Marketplace "<name>" is registered from an untrusted source Plugin errors
Claude Code refuses the marketplace name "<name>" Plugin errors
Marketplace name impersonates an official Anthropic/Claude marketplace Plugin errors
Marketplace "<name>" is already added from a different source Plugin errors
"<name>" is another spelling of "<reserved>", a reserved marketplace name Plugin errors
Marketplace "<name>" is added but ignored Plugin troubleshooting
Marketplace "<name>" is registered but was refused (see the debug log) Plugin troubleshooting
references ${user_config.*} in a shell-form command Plugin errors
Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command Plugin errors
headersHelper for MCP server '<name>' references ${user_config.*} Plugin errors
Plugin archive integrity check failed Plugin errors
An npm plugin source must name a registry package Plugin troubleshooting
path escapes plugin directory Plugin errors
path could not be checked Plugin errors
its marketplace entry path does not stay inside the marketplace directory Plugin errors
Plugin source path refused Plugin errors
Failed to load marketplace configuration Plugin errors
Marketplace configuration file is corrupted Plugin errors
Plugin "<name>@synced" is required by your organization and can't be disabled here Plugin errors
"<plugin>" was not uninstalled: it is still switched on in <file> Plugin errors
"<plugin>" was not uninstalled: <file> is there and could not be read Plugin errors
Plugin "<plugin>" was not uninstalled: installed_plugins.json Plugin troubleshooting
would be spawned with zero tools — refusing Tool errors
File is covered by a Read deny rule in your permission settings Tool errors
cannot contain null bytes (\0) Tool errors
Path contains null bytes Tool errors
subagent_type is required: the general-purpose agent is not available in this session Tool errors
Error: this write left the memory index at MEMORY.md at ..., over its ... read limit Tool errors
pkill: refusing to run Tool errors
Failed to write to <name>'s inbox — nothing was sent Tool errors
Failed to write the plan approval request to the lead's inbox — plan not submitted Tool errors
Its agent definition was not restored: the folder its definition file came from is not trusted Tool errors
Message too large for cross-session delivery Tool errors
Too many messages to this session just now Tool errors
Cross-session message was dropped at the recipient session's inbox Tool errors
Refusing to send: reply target is a symlink / Refusing to send: cannot vet reply target Tool errors
Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>) / Refusing to search <path>: its symlink resolution changed after permission was checked Tool errors
Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked / Refusing to write <path>: it is a symbolic link. Write to the link's target path instead Tool errors
Refusing to write through symlink: <path> / Refusing to write into symlinked directory: <path> Tool errors
Refusing to write <path>: where it leads on disk could not be determined / Refusing to read <path>: where it leads on disk could not be determined Tool errors
Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared / Refusing to search <path>: it could not be opened Tool errors
its permission check expired before it ran (too many concurrent file operations) / ripgrep was found only by name on PATH Tool errors
task output swap refused (tasks dir moved or linked) Tool errors
Command killed: its output file was replaced or could no longer be verified Tool errors
Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT) Tool errors
The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC) Tool errors
Command output was lost: the temp filesystem at <dir> is full / is out of inodes Tool errors
the source file is not valid UTF-8 text / the source file is not valid UTF-16 text Tool errors
the source file has the replacement character U+FFFD Tool errors
Reading a local file from outside this session's connected folders, or through a link, needs the approval card Tool errors
cannot read file_path (...) — the file could not be examined, and no one can answer the approval card Tool errors
WebFetch cannot fetch localhost or other hostnames without a dot Tool errors
The safety check for domain ... is rate-limited Tool errors
The safety check for domain ... is temporarily rate-limited Tool errors
Unable to verify if domain ... is safe to fetch Tool errors
Can't open MCP settings while no terminal is attached to this background session Background session errors
Can't open MCP settings in a background session Background session errors
blocked because the path is spelled in a form that cannot be safely resolved Background session errors
blocked because the path is network-shaped Background session errors
is isolated in the worktree <path>, but this command <reason>. Refusing to run it Background session errors
too complex to verify that it stays inside the worktree Background session errors
This session has no saved transcript Background session errors
Can't open — this session is running in another terminal Background session errors
This conversation is already open in another running Claude session Background session errors
This session's saved conversation is no longer on disk Background session errors
kept <id> — its worktree is still at <path> Background session errors
kept <id> — <n> unpushed commits on <branch> Background session errors
kept <id> — worktree has commits that are not pushed anywhere Background session errors
terminal host process died — press Enter to restart / This session's terminal host process died Background session errors
Session isn't responding / Press enter again to restart this session — it isn't responding Background session errors
Session <id> was stopped while the respawn was in flight Background session errors
This session was running agent '<name>', which is no longer available Background session errors
CLAUDE_CODE_PROCESS_WRAPPER: launcher ... Background session errors
EUNKNOWN: unknown error, uv_spawn Background session errors
EACCES: permission denied, posix_spawn Background session errors
exited before it became reachable Background session errors
Couldn't start a background session (working directory no longer exists or is not accessible: ...) Background session errors
Workspace not trusted. when starting or restarting a background session Background session errors
Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...) Background session errors
Claude Code process exited with code N Wrapper and IDE errors
The connection to Claude Code ended before this message completed Wrapper and IDE errors
Could not locate the Claude CLI on PATH Wrapper and IDE errors
Restored the code, but skipped N files Rewind warnings and errors
No files were restored: N files failed (backup missing, or the file could not be updated) Rewind warnings and errors
Transcript writes are failing (...) Session saving warnings
Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set Session saving warnings
Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker Session saving warnings
Claude Code's fullscreen renderer didn't finish starting last time on this machine / Claude Code's fullscreen renderer has repeatedly failed to start on this machine Fullscreen rendering
Claude Code exited after an unrecoverable interface error (...) Configuration warnings
Agent descriptions are over the 15.0k-token limit Configuration warnings
Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account Configuration warnings
Ignoring N permissions.allow entries from ... this workspace has not been trusted Configuration warnings
is a network path, which cannot be added as a working directory Configuration warnings
Remote managed settings failed to load (<cause>) Configuration warnings
Managed settings were not approved; exiting without applying them. Configuration warnings
Claude Code can't start: your organization's managed settings block the default model / Claude Code can't start: your organization allows only the models listed in "availableModels" Configuration warnings
Your organization's managed settings allow Claude Code to use: <providers> Configuration warnings
Your organization's managed settings allow Claude Code to use no API provider at all Configuration warnings
MCP server <name> is blocked by enterprise managed policy Configuration warnings
Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it. Configuration warnings
Managed settings drop-in directory could not be read Configuration warnings
Unable to read managed policy settings Configuration warnings
otelHeadersHelper failed; telemetry is not being exported. See /status: ... Configuration warnings
"crossSessionInbound" must be one of "accept", "hold", "refuse" Configuration warnings
headersHelper not run — this workspace has no persisted trust Configuration warnings
Invalid permission rule "..." was skipped: Malformed Tool(content) rule Configuration warnings
... is not matched by file permission checks Configuration warnings
... has a wildcard before the rest of the command Configuration warnings
CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced Configuration warnings
[claude-code:unrecognized_model] Configuration warnings
Stale sandbox mask files left by a killed session Configuration warnings
Responses seem lower quality than usual Response quality

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

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 прерывает застопорившееся соединение и повторно отправляет запрос максимум один раз, вне бюджета из 10 попыток выше. Если ответ застопорится во второй раз после того, как 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, ограничение на одну повторную попытку не применяется.
  • Временные дроссели 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 секунд применялся и во время вызовов советника, поэтому баннер появлялся во время обзоров советника, даже когда всё было в порядке.

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

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

Переменная По умолчанию Эффект
CLAUDE_CODE_MAX_RETRIES 10 Количество повторных попыток. Ограничено 15 начиная с v2.1.186; начиная с v2.1.199 CLAUDE_CODE_RETRY_WATCHDOG повышает значение по умолчанию и удаляет ограничение. Снизьте его, чтобы быстрее выявлять сбои в скриптах.
CLAUDE_CODE_RETRY_WATCHDOG не установлено Установите значение 1 в автоматических сессиях, таких как задания CI, чтобы повторять ошибки пропускной способности 429 и 529 бесконечно вместо отказа после CLAUDE_CODE_MAX_RETRIES попыток. Claude Code сразу завершается с ошибкой, когда запрос со стандартной скоростью получает 429, который сообщает о лимите расходов или исчерпанных кредитах использования, даже если это 429 от gateway spend cap, который сбрасывается по расписанию. До v2.1.239 сторож повторял такие запросы бесконечно. Для запросов в быстром режиме см. Handle rate limits. На v2.1.199 или позже он также повышает количество повторных попыток по умолчанию для других временных ошибок, таких как ошибки сервера, таймауты и разорванные соединения, до 300, примерно три часа задержки, и удаляет ограничение 15 на CLAUDE_CODE_MAX_RETRIES, если вы явно установите эту переменную.
API_TIMEOUT_MS 600000 Таймаут для каждого запроса в миллисекундах. Повысьте его для медленных сетей или прокси. Он также ограничивает, как долго Claude Code ждёт заголовков ответа, как описано в No response from API.
CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS не установлено Дедлайн в миллисекундах для первого байта ответа потокового запроса. Требуется Claude Code v2.1.242 или позже. О том, как Claude Code выбирает дедлайн, когда эта переменная не установлена, см. No response from API.

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

Большинство этих ошибок поступают от поставщика вывода: сервиса 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:

API Error: 500 Internal server error. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com.

Завершающее предложение указывает, где проверить состояние сервиса, и зависит от поставщика. Для конфигураций 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 уже несколько раз повторил попытку перед отображением этого сообщения:

API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

Завершающее предложение зависит от поставщика так же, как в ошибке 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 не ответил до истечения срока подключения.

Request timed out

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

Что делать:

No response from API

Claude Code отправил потоковый запрос, и API не вернул заголовки ответа в течение срока ожидания первого байта, поэтому Claude Code прервал запрос вместо ожидания полного таймаута запроса API_TIMEOUT_MS, по умолчанию 10 минут. Claude Code отправляет запрос повторно не более одного раза, если это позволяет бюджет повторных попыток. Когда повторная попытка тоже остается без ответа, ход завершается этим сообщением, которое показывает, сколько ждала каждая попытка. Когда вы устанавливаете CLAUDE_CODE_RETRY_WATCHDOG, ограничение в одну повторную попытку не применяется, и Claude Code повторяет попытки в рамках бюджета, описанного в разделе Настройка поведения повторных попыток.

API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.

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 успел завершить, и добавляет это уведомление вместо того, чтобы отбросить ход. Вариант сообщения указывает на причину:

API Error: Server error mid-response. The response above may be incomplete.
API Error: Connection lost mid-response. The response above may be incomplete.
API Error: Your computer went to sleep mid-response. The response above may be incomplete.
API Error: The response stopped arriving. The response above may be incomplete.
API Error: Part of the response never arrived. The response above may be incomplete.
API Error: The response stream was malformed. The response above may be incomplete.
  • 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

Модель, которую авторежим использует для классификации действий, не смогла вынести решение, поэтому авторежим не одобрил действие автоматически. Сообщение, которое вы видите, зависит от характера сбоя классификатора.

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

Когда модель классификатора недоступна:

<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

Когда 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 истекший или замененный токен приводил к сбою каждого запроса классификатора, и авторежим отклонял каждое проверяемое действие с этим сообщением, пока токен не был обновлен.

Когда классификатор вернул ответ, который не удалось разобрать:

Auto mode could not evaluate this action and is blocking it for safety — run with --debug for details

Что делать:

  • Повторите действие; обычно следующая попытка проходит успешно
  • Запустите claude --debug и повторите действие, чтобы получить подробности в логе отладки

Когда отдельная проверка безопасности API заблокировала запрос классификатора из-за более раннего содержимого диалога:

Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details

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, когда авторежим отправил диалог классификатору
  • Повторная попытка не поможет; то же содержимое диалога снова вызовет срабатывание фильтра
  • В интерактивной сессии переключитесь на другой режим разрешений, чтобы вы могли одобрить действие при появлении запроса
  • Начните новый диалог без содержимого, вызывающего срабатывание

Когда диалог превысил размер контекстного окна классификатора:

Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)

Что происходит с действием, зависит от того, где 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):

The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

Остальная часть сообщения сообщает Claude, может ли помочь одна повторная попытка. Перед некоторыми из этих отказов Claude Code делает паузу, чтобы следующая попытка Claude не последовала сразу. Во время ожидания в интерактивной сессии индикатор показывает Auto mode check unavailable с обратным отсчетом, а нажатие Esc прерывает ход.

После десяти ответов подряд без вердикта авторежим останавливает ход:

Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.

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

  • В интерактивной сессии сообщение появляется как предупреждение в транскрипте, и ход завершается
  • При неинтерактивном запуске с -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 так, как если бы это был результат субагента.

Agent terminated early due to an API error: <error detail>

Что делать:

Когда ограничение частоты запросов, перегрузка или ошибка сервера прерывает субагента переднего плана, который уже сформировал текстовый вывод, 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

Планы подписки включают скользящий лимит использования. Когда он заканчивается, вы видите одно из этих сообщений:

You've hit your session limit · resets 3:45pm
You've hit your weekly limit · resets Mon 12:00am
You've hit your Opus limit · resets 3:45pm
You've hit your Sonnet limit · resets 3:45pm

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-токена, и ваш план включает его только через кредиты использования.

API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context

В сеансе, который запускает 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 limit reached · continuing on Fable 5.1 uses usage credits, and the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change
Fable 5.1 now uses usage credits · the prompt to confirm went unanswered — nothing was sent · answer it where this session is running, or /model to change

Сообщения называют модель Fable сеанса, поэтому на Fable 5 они читают continuing on Fable 5 и Fable 5 now uses usage credits. До версии v2.1.257 первое сообщение начиналось с Fable 5 limit reached.

Это происходит в сеансах Remote Control, background sessions, agent team товарищей и сеансах, которые другое приложение размещает через 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 применил кратковременное ограничение скорости, которое не связано с квотой вашего плана.

API Error: Server is temporarily limiting requests (not your usage limit)

Claude Code различает их от лимита вашего плана по отсутствию унифицированных заголовков квоты, которые несёт реальный ответ лимита. Начиная с версии v2.1.199 это retried automatically с backoff перед отображением, независимо от того, как вы аутентифицируетесь. В более ранних версиях сеанс, вошедший с подпиской claude.ai, не прошёл ход при первом возникновении; только API key и Enterprise sign-ins повторили попытку.

Что делать:

  • Подождите немного и попробуйте снова
  • Проверьте status.claude.com, если это сохраняется

Request rejected (429)

Вы достигли лимита скорости, настроенного для вашего API key, проекта Amazon Bedrock или проекта Google Cloud.

API Error: Request rejected (429) · this may be a temporary capacity issue. If it persists, check https://status.claude.com.

Завершающее предложение называет, где проверить здоровье сервиса, и варьируется в зависимости от поставщика. Конфигурации 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 keys Anthropic см. rate limits reference для информации о том, как работают уровни и как установить ограничения на рабочее пространство
  • Снизьте параллелизм: понизьте CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY, избегайте запуска множества параллельных подагентов, или переключитесь на меньшую модель с помощью /model для высокообъёмных скриптовых запусков

You've hit your monthly spend limit

Включённое использование вашего плана не может покрыть этот запрос, и usage credits, которые в противном случае оплатили бы его, достигли лимита расходов. Это происходит, когда одно из окон использования вашего плана закончилось, или когда запрос — это запрос, который оплачивают только кредиты использования, такой как запрос к модели, которая bills to usage credits. Сообщение называет, чей лимит вас заблокировал. Текст после · говорит, как увеличить этот лимит, и варьируется в зависимости от вашего плана и того, управляете ли вы выставлением счётов:

You've hit your monthly spend limit · raise it at claude.ai/settings/usage
You've hit your individual spend limit · ask your admin for a higher limit
You've hit your org's monthly spend limit · visit claude.ai/admin-settings/usage to raise it
You've hit your team's shared budget · ask your admin to raise it at claude.ai/admin-settings/usage
You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings

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.

До версии v2.1.239 сообщение не называло время сброса окна плана. До версии v2.1.268 объединённый бюджет группы производил сообщение individual spend limit вместо team's shared budget.

Если вы подключаетесь через шлюз приложений Claude и видите строчное spend limit reached, это ограничение вашего оператора шлюза; см. Spend limit reached.

Что делать:

  • На Pro и Max увеличьте ваш ежемесячный лимит расходов в Settings > Usage на claude.ai, или запустите /usage-credits
  • На Team и Enterprise увеличьте лимит в Admin 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 показывает это сообщение без повторных попыток.

spend limit reached (daily; resets 2026-08-09 00:00 UTC)

Сообщение называет период ограничения и время сброса, и когда оператор настроил blocked_message, его инструкции следуют за ним. До версии v2.1.225 сообщение читалось только spend limit reached; шлюз на более старой версии всё ещё отправляет эту более короткую форму.

Что делать:

  • Дождитесь времени сброса, которое называет сообщение, или следуйте инструкциям оператора, если сообщение их содержит
  • Попросите вашего оператора шлюза повысить ограничение, если вы его часто достигаете

Связанное сообщение, spend limit unavailable, означает, что шлюз не смог прочитать свои записи расходов и заблокировал запрос в качестве меры предосторожности, а не из-за вашего ограничения. Обычно это очищается само по себе; если это сохраняется, сообщите вашему оператору шлюза.

Credit balance is too low

Ваша организация Console исчерпала предоплаченные кредиты, или Claude Code отправляет ваши запросы с помощью Console API key, когда вы имели в виду использовать вашу подписку.

Credit balance is too low

Что делать:

  • Если у вас есть план 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: <reason from the server>

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

Что делать:

  • Если сообщение включает причину, выберите лимит, который её удовлетворяет, например меньшую сумму
  • Если сообщение показывает только общую форму, повторите попытку; отказ может быть временным
  • Если изменение продолжает не удаваться, сделайте его из ваших claude.ai billing settings в браузере вместо этого

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

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

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

Для этой сессии нет действительных учётных данных.

Not logged in · Please run /login

В сессии, которую запускает приложение 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 сообщают о том же состоянии как Не выполнен вход и записывают эту строку только в свой отладочный лог, поэтому если вы нашли её там, следуйте указаниям из того раздела.

Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

В текущих версиях ошибка означает, что рабочему процессу не были доступны никакие учётные данные. До версии 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 до его отправки.

Invalid API key · Fix external 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 отправлял всё, что выводила команда, после удаления окружающих пробелов.
Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output

В неинтерактивном режиме 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 · Fix external auth token
Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable
Invalid request header from the environment · Fix the environment variable

Первая часть сообщения зависит от того, откуда пришло неверное значение:

  • 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 завершается с ошибкой.

После второго · сообщение описывает проблему, как в этом полном примере:

Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).

Позиции символов отсчитываются с единицы. Описание строится из фиксированных фраз и счётчиков символов, поэтому никогда не содержит само значение. Оно называет проблемный символ только тогда, когда это общеизвестный невидимый или типографский символ, например метка порядка байтов, пробел нулевой ширины или фигурная кавычка, а обо всём остальном сообщает как a non-ASCII character.

Что делать:

  • Заново задайте переменную или настройку, указанную в сообщении, перепечатав символы вокруг указанной позиции вручную, а не вставляя их снова из того же источника
  • Для ANTHROPIC_CUSTOM_HEADERS указывайте по одной паре Name: Value на строку и перепишите пару, номер которой указан в сообщении
  • Запустите /status, чтобы проверить, какой источник учётных данных активен

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

Claude Code использует устаревший ANTHROPIC_API_KEY из отключённой организации Console. Если у вас есть сохранённый вход по подписке, ключ имеет приоритет над ним.

Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead
Your ANTHROPIC_API_KEY belongs to a disabled organization · Update or unset the environment variable
API Error: 400 ... This organization has been disabled.

Подсказка после · зависит от ваших сохранённых учётных данных: первая форма появляется, когда сохранённый /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. Подсказка по восстановлению после · зависит от того, откуда взялся ключ:

Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead
Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account
Your organization has disabled API key authentication · Sign in again with your claude.ai account

Последняя форма появляется в сессии, которую запускает приложение 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 с той же учётной записью возвращает ту же ошибку.

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

Это серверная настройка организации, поэтому её нельзя переопределить локальными настройками, переменными окружения или флагами 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.

Routines are disabled by your organization's policy.

Это серверная настройка, поэтому её нельзя переопределить локальными настройками, переменными окружения или флагами CLI.

Что делать:

Remote Control требует Anthropic API

Сессия не обращается к Anthropic API напрямую, а это необходимо для Remote Control.

Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use 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. Этот раздел охватывает следующие строки:

Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control
Remote Control disconnected — Claude.ai login expired — run /login, then /remote-control
Remote Control disconnected — Claude.ai login was rejected — run /login, then /remote-control
Remote Control disconnected — OAuth token unavailable — run /login to restore Remote Control
Remote Control disconnected — OAuth token refresh failed — run /login to re-authenticate
Remote Control disconnected — JWT refresh failed: no OAuth token — run /login
Remote Control disconnected — Signed out of Claude — run /login, then /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, в которые был выполнен вход в тот момент.

Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control

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 stopped — the app running this session is now signed in to a different Claude account
Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on

Ваша локальная сессия продолжает работать без 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, вы видите те же сообщения, когда этот токен истекает или отзывается.

OAuth token revoked · Please run /login
Please run /login · API Error: 401 OAuth token has expired ...

В неинтерактивном режиме (-p) и в Agent SDK сообщения выглядят следующим образом, а структурированный код ошибки — authentication_failed:

Failed to authenticate: OAuth token revoked. Please log in again or contact your administrator.
Failed to authenticate. API Error: 401 OAuth token has expired ...

До версии 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, чтобы узнать, какие из них активны.

Please run /login · API Error: 401 Invalid authentication credentials

Что делать:

  • Если /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 вместо предложения войти.

Login expired · Please run /login

В неинтерактивном режиме (-p) и в Agent SDK сообщение выглядит следующим образом, а структурированный код ошибки — authentication_failed:

Failed to authenticate: OAuth session expired and could not be refreshed

Это не то же состояние, что 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 останавливает запрос до отправки:

Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

В неинтерактивном режиме (-p) и в Agent SDK сообщение выглядит следующим образом, а структурированный код ошибки — server_error:

Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

Сессии, аутентифицированные с помощью API-ключа, CLAUDE_CODE_OAUTH_TOKEN или стороннего провайдера, не используют сохранённый вход и никогда не видят этого сообщения.

Что делать:

  • Повторите попытку через минуту. Если другой процесс завершит обновление первым, эта сессия использует обновлённый вход.
  • Если сообщение продолжает появляться, закройте другие окна и процессы Claude Code, затем повторите попытку.
  • Если оно появляется, когда никакие другие процессы Claude Code не запущены, запустите /login. Повторный вход не ждёт снятия блокировки обновления.

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

Вы вошли через claude.ai, но Claude Code не смог сохранить вход в своё хранилище учётных данных, поэтому вход не завершился. В macOS это может произойти, когда связка ключей входа блокируется, например при переходе в сон или простое, после того как Claude Code уже прочитал или сохранил в ней учётные данные в той же сессии.

Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.
Couldn't save your login. Try logging in again.

Первая форма появляется в macOS, а вторая — на всех остальных платформах. Временный сбой хранилища учётных данных, например таймаут или нечитаемое хранилище, приводит к тому же сообщению.

Что делать:

  • В macOS разблокируйте связку ключей входа, затем снова запустите /login
  • На других платформах снова запустите /login
  • Если вход по-прежнему не сохраняется, см. Не выполнен вход или токен истёк, где приведена команда разблокировки связки ключей и другие шаги восстановления хранилища учётных данных

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

Когда /login, claude auth login или claude setup-token выполняют вход через браузер, Claude Code открывает прослушивающий порт на 127.0.0.1, чтобы браузер мог вернуть ему результат входа. Это сообщение означает, что Claude Code не смог открыть этот порт, и вход останавливается до появления окна браузера или URL входа:

Failed to start OAuth callback server: Failed to start server. Is port 0 in use?

Если ваше сообщение заканчивается на 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, отправленный этой машиной, обычно потому, что вход истёк или был отозван.

Первая часть строки — это собственная причина сервера, если он её сообщает. В противном случае строка выглядит так:

Claude login not accepted · Run /login, then try again

Что делать:

  • Запустите /login, завершите вход, затем снова запустите сессию

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

Claude Code отказался публиковать или читать артефакт, потому что у сессии нет входа claude.ai, который можно использовать для артефактов.

Каждая форма сообщения начинается с одних и тех же слов, за которыми следует способ устранения, зависящий от того, как аутентифицируется ваша сессия. При отсутствии конкурирующих учётных данных оно выглядит так:

Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.

Что делать:

  • Запустите /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. Вы видите одно из двух сообщений:

Not signed in to the Cloud gateway — run /login.

Запросы к модели завершаются этим сообщением, когда у сессии нет входа через шлюз, например потому что вы не запускали /login с тех пор, как политика поступила на машину.

Если на машине также есть учётные данные, выданные Anthropic, а управляемые настройки задают forceLoginMethod или forceLoginOrgUUID, Claude Code вместо этого завершает работу при запуске. Такими учётными данными может быть переменная ANTHROPIC_API_KEY или ANTHROPIC_AUTH_TOKEN, настройка apiKeyHelper или API-ключ, сохранённый при предыдущем входе в Claude Console.

Сообщение при запуске называет учётные данные, с которыми настроена сессия, место, где они заданы, и шаг, который их удаляет. Например, если в вашей оболочке задана переменная ANTHROPIC_API_KEY, оно выглядит так:

Administrator policy requires a Cloud gateway sign-in on this machine, but this session is configured with an API key from ANTHROPIC_API_KEY, which a gateway machine does not accept.

To continue: unset ANTHROPIC_API_KEY (or run in a shell without it), then run claude and sign in with /login.

Что делать:

  • Для 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 показывает первое сообщение, когда пытается обновить ваш сохранённый вход и узнаёт о блокировке, а второе — когда о ней сообщает вход, выполненный вами в браузере:

Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted
Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted

Повторный вход с той же учётной записью не убирает сообщение, потому что блокировка наложена на учётную запись, а не на вход. В неинтерактивном режиме (-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 останавливает каждый запрос локально без повторных попыток, потому что повторная попытка прочитала бы те же истёкшие учётные данные.

Anthropic profile login expired · Re-authenticate your Anthropic profile
Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile

Это появляется только тогда, когда активные учётные данные поступают из профиля учётных данных Anthropic — того, который вы выбираете переменной окружения ANTHROPIC_PROFILE, который Claude Code обнаруживает как активный профиль в вашем каталоге конфигурации Anthropic, или который Claude Code записал, когда вы вошли без API-ключа. Сессии, аутентифицирующиеся с помощью API-ключа, Bearer-токена, такого как ANTHROPIC_AUTH_TOKEN, или стороннего провайдера, никогда не видят этого сообщения.

На машине, которая предлагает вход без ключа, запустите /login, выберите учётную запись Anthropic Console и войдите снова, чтобы обновить профиль, записанный входом в Console без ключа или командой ant auth login Claude Platform CLI. Claude Code заменит истёкшие учётные данные в этом профиле. Для профиля федерации или профиля, созданного другим инструментом, /login не обновляет учётные данные. Какую форму вы увидите, зависит от того, выбрали ли вы профиль сами или Claude Code обнаружил его:

  • Если вы явно задали ANTHROPIC_PROFILE, сообщение заканчивается на Re-authenticate your Anthropic profile.
  • Если Claude Code обнаружил профиль в вашем каталоге конфигурации, сообщение предлагает /login, потому что Claude Code отдаёт работающему /login приоритет над обнаруженным профилем и тогда проходит аутентификацию с вашей учётной записью claude.ai или Console. До версии v2.1.234 Claude Code показывал форму Re-authenticate your Anthropic profile и в этом случае.

Что делать:

  • Снова войдите в профиль, затем повторите попытку: на машине, которая предлагает вход без ключа, запустите /login и выберите учётную запись Anthropic Console для профиля, записанного входом в Console без ключа или командой ant auth login Claude Platform CLI; для других профилей используйте инструмент, который их создал
  • Если учётные данные профиля предоставил администратор, попросите его выдать новые
  • Запустите /status, чтобы проверить активный источник учётных данных и имя профиля
  • Чтобы перестать использовать профиль, сбросьте ANTHROPIC_PROFILE, если вы её задавали, затем пройдите аутентификацию другим способом, например через /login или ANTHROPIC_API_KEY

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

Сохранённый токен был выдан до появления scope разрешений, который нужен новой функции:

OAuth token does not meet scope requirement: user:profile

Что делать:

  • Запустите /login, чтобы получить новый токен с текущими scope. Предварительно выходить не нужно.

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

Запрос коннектора claude.ai завершился ошибкой, потому что claude.ai отклонил токен из вашего входа в Claude Code. Отклонённый токен — это ваш вход, а не собственная авторизация коннектора в claude.ai, поэтому повторная авторизация коннектора проблему не решает. В /mcp коннектор отображается как session token rejected, а в его подробном представлении написано:

claude.ai rejected the session token. Run /login, then reconnect.

Что делать:

  • Запустите /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 server "<name>" needs you to sign in again (run /mcp to re-authenticate)

Запустите /mcp, выберите сервер и снова войдите из его меню.

Для сервера, настроенного со скриптом headersHelper, Claude Code уже повторно запустил хелпер и один раз повторил вызов, прежде чем показать это:

MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)

Убедитесь, что хелпер возвращает учётные данные, которые принимает сервер, затем переподключитесь из /mcp, что снова запустит хелпер.

Для сервера со статическим заголовком Authorization в его конфигурации:

MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)

Обновите значение заголовка там, где настроен сервер, затем переподключитесь из /mcp.

До версии v2.1.273 во всех случаях — истёкшего входа, headersHelper и заголовка Authorization — показывалось MCP server "<name>" requires re-authorization (token expired).

Сервер также может отклонить вызов инструмента с HTTP 403 insufficient_scope, чтобы попросить вас авторизовать scope, иногда такой, который уже указан в вашем токене. Сообщение называет этот scope:

MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate

Запустите /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> в оболочке выводит отказ так:

Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.

Что делать:

  • Задайте для url записи реальный эндпоинт сервера там, где настроен сервер, или задайте переменную окружения, названную в её ссылке ${VAR}, затем снова выполните вход.

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

Во время входа MCP OAuth сервер авторизации перенаправил обратно в Claude Code с параметром iss, который не называет издателя, ожидаемого Claude Code по метаданным OAuth сервера. Неверный издатель на этом шаге — признак атаки подмены сервера авторизации (mix-up), поэтому Claude Code прерывает вход, а не обменивает код авторизации. Claude Code показывает ошибку в меню сервера /mcp после входа в браузере:

Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"

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 показывает его в меню сервера:

Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).

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:

AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...

До версии 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 · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

Подсказка о действии в середине зависит от вашей настройки. Неизменная часть — начальное 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:

Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...

Что делать:

  • Если в подсказке сказано, что учётными данными управляет это окружение, учётные данные принадлежат приложению, которое запустило 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:

Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...

Что делать:

  • Если в подсказке сказано, что учётные данные управляются этой средой, учётными данными владеет приложение, запустившее 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:

Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...

Что делать:

  • Если в подсказке сказано, что учётные данные управляются этой средой, учётными данными владеет приложение, запустившее 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 по умолчанию на машине, где он работает, поэтому ни один запрос не дошёл до вашего облачного провайдера. Прежде чем показать это сообщение, Claude Code очищает свои кэшированные учётные данные и дважды повторяет попытку. Подробности после · указывают конкретную причину, например истёкшую SSO-сессию, отсутствующие учётные данные приложения по умолчанию, о которых сообщается как Could not load the default credentials, или отозванный вход, о котором сообщается как invalid_grant:

API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.
API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

В неинтерактивном режиме с -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 очищает свой кэш учётных данных и повторяет попытку, поэтому к моменту, когда вы её видите, цепочка зависла уже на нескольких попытках.

API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

Распространённые причины — команда 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-секундного лимита. Мастер прекращает ожидание, и шаг проверки завершается с ошибкой:

Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.

Число отражает ваш лимит: 60 секунд по умолчанию или значение, заданное в CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.

Распространённые причины — сеть или прокси, задерживающие запросы к AWS, включая обновление токена SSO, а также вспомогательная программа учётных данных, всё ещё ожидающая ввода, который вы не видите. Увеличивайте лимит, только если вспомогательной программе действительно требуется больше времени.

Отдельный зависший запрос к AWS также может завершиться ошибкой по собственному таймауту запроса, и тогда на том же шаге отображается более короткое сообщение:

A request to AWS timed out. Check your network and proxy settings, then try again.

Если такие же таймауты возникают на шаге закрепления модели, мастер помечает модель как 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, сессия открылась без входа в шлюз:

Cloud gateway session expired — run /login to reconnect.

Та же строка может появиться посреди сессии, когда учётные данные шлюза истекают и Claude Code не может их продлить.

При неинтерактивном запуске, в фоновой или другой автономной сессии, а также в подкоманде claude, отличной от claude auth, Claude Code вместо этого завершает работу с таким сообщением, когда шлюз больше не принимает сессию:

Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.

Что делать:

  • Выполните /login в сессии и завершите вход в браузере
  • Для неинтерактивного запуска запустите claude в той же среде, выполните /login, затем повторно выполните свою команду

Sign-in timed out while waiting for you to continue

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

Sign-in timed out while waiting for you to continue. Try again.

Что делать:

  • Снова выполните /login и подтвердите учётную запись до истечения срока действия входа

Gateway refused the request

Вы вошли через шлюз приложений Claude, и запрос вернул ошибку 403: шлюз или стоящий за ним вышестоящий сервис отклонил его. Повторный вход не меняет отказ, поэтому сообщение направляет вас к администратору шлюза:

Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...

Что делать:

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

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

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

Unable to connect to API

TCP-соединение с API не удалось или никогда не завершилось. Для распространённых кодов ошибок подключения сообщение указывает тип сбоя и сохраняет код в скобках:

Unable to connect to API. Check your internet connection
Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)
Can't reach the API server — check your internet or DNS (ENOTFOUND)
No internet route — check your connection or VPN (EHOSTUNREACH)
Couldn't connect through your proxy (ERR_PROXY_TUNNEL) — the proxy refused the tunnel: check its credentials and that it allows this host
Connection dropped (ECONNRESET)
Request timed out. Check your internet connection and proxy settings

Код, который 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 и см. Network configuration
  • Если вы маршрутизируете через шлюз LLM или ретранслятор, установите ANTHROPIC_BASE_URL на его адрес. См. Connect Claude Code to an LLM gateway для настройки.
  • Убедитесь, что ваш брандмауэр разрешает хосты, указанные в Network access requirements
  • Прерывистые сбои повторяются автоматически; постоянные сбои указывают на локальную проблему сети

Если curl успешен, но Claude Code всё ещё не работает, причина обычно находится между средой выполнения и сетью, а не в самой сети:

  • Проверьте, установлена ли переменная ANTHROPIC_BASE_URL, запустив echo $ANTHROPIC_BASE_URL, или echo $env:ANTHROPIC_BASE_URL в PowerShell, и посмотрите её в блоке env ваших settings files. Когда она установлена, 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 выводит причину и выходит.

Unable to connect to Anthropic services
Failed to connect to api.anthropic.com: ECONNREFUSED
Connection to api.anthropic.com timed out after 10 seconds
A proxy is configured via HTTPS_PROXY. Check that it allows connections to the host above.

Claude Code отправляет проверку через ту же proxy configuration, что и запросы API, и даёт каждому зонду 10 секунд. Когда неудачный зонд прошёл через прокси, сообщение указывает переменную окружения, которая его настроила, такую как HTTPS_PROXY. До версии v2.1.222 проверка использовала другой транспорт прокси без тайм-аута: за прокси URL со схемой https:// она могла зависнуть на Checking connectivity... неопределённо долго, а затем не удаться, даже если запросы API через тот же прокси успешны.

Claude Code пропускает эту проверку, когда managed settings file, MDM policy, или policy helper устанавливает forceLoginMethod на "gateway", или устанавливает forceLoginGatewayUrl без forceLoginMethod. С любой из этих конфигураций Claude Code открывает шаг входа на экране Cloud gateway вместо метода входа Anthropic. Claude Code также пропускает проверку, когда источник управляемых параметров на машине существует, но не может быть прочитан, поскольку этот источник может содержать конфигурацию шлюза. До версии v2.1.247 Claude Code запускал проверку и при этой конфигурации и выходил с этой ошибкой, когда конечные точки Anthropic были недостижимы.

Что делать:

  • Если сообщение указывает переменную прокси, проверьте, что её значение указывает на правильный прокси, и попросите вашу команду сети разрешить HTTPS-соединения через него к хосту в сообщении. См. Network configuration.
  • Пройдите проверки в Unable to connect to API. Тест curl и рекомендации по брандмауэру там применяются и к этой проверке.
  • Если ваша сеть открыта и сбой сохраняется, Claude Code может быть недоступен в вашей стране

Socket is closed

Socket is closed означает, что соединение, несущее потоковый ответ, было закрыто, пока ответ всё ещё поступал. Наиболее распространённая причина — корпоративный прокси на Windows, отбрасывающий установленный туннель в середине ответа.

В зависимости от того, насколько далеко продвинулся ответ, Claude Code повторяет запрос, сохраняет то, что произвёл Claude, или завершает ход. См. Automatic retries.

До версии v2.1.214 Claude Code не повторял этот сбой, и ход останавливался с ошибкой, содержащей Socket is closed.

Что делать:

  • Если вы видите эту ошибку, обновитесь до v2.1.214 или позже с помощью claude update, затем отправьте ваше сообщение снова
  • Если ходы продолжают не удаваться за тем же прокси после обновления, пройдите Unable to connect to API и проверьте настройку прокси в Network configuration

API returned an empty or malformed response

Claude Code показывает эту ошибку, когда его повторная попытка без потока неудачного потокового запроса получает статус HTTP успеха, но тело не является сообщением Claude API: обычно это HTML-ошибка или страница входа, пустое тело или JSON в другом формате. Прокси, шлюз или страница входа в сеть, отвечающие вместо API, — обычный источник. Claude Code не повторяет запрос, и ход заканчивается этой ошибкой.

API returned an empty or malformed response (HTTP 200) — check for a proxy or gateway intercepting the request.

После этого открытия сообщение сообщает, что вернулось и какой запрос не удался:

  • Предложение 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, означает, что что-то между Claude Code и API ответило вместо него
  • Если вы маршрутизируете через LLM gateway, протестируйте маршрут прямым запросом и исправьте переход, который возвращает ответ, отличный от 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 молча повторял попытку без потока.

Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider.

Claude Code отправляет каждый затронутый запрос дважды: пустую попытку потока и повторную попытку. Обычная причина — прокси или шлюз, который потребляет или преобразует тело потокового ответа на обратном пути.

Что делать:

  • Настройте любой прокси или шлюз между Claude Code и вашим поставщиком модели, чтобы пропускать тела потоковых ответов и их заголовки без изменений
  • На Amazon Bedrock см. Streaming errors behind a gateway or proxy для требований к заголовкам и телу

Bedrock streaming response has an unexpected content-type

Шлюз или прокси между Claude Code и Amazon Bedrock преобразует тело потокового ответа или его заголовок Content-Type. Amazon Bedrock потоком передаёт ответы как application/vnd.amazon.eventstream. Вместо декодирования тела, которое он не может прочитать, Claude Code отклоняет успешный потоковый ответ, который сообщает другой тип содержимого. Claude Code не повторяет запрос.

Bedrock streaming response has content-type "text/event-stream"; expected "application/vnd.amazon.eventstream". A gateway or proxy between Claude Code and Bedrock is likely transforming the response body — Bedrock's binary event-stream format must be passed through unmodified. Set CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 to suppress this check while the gateway is being fixed.

До версии v2.1.208 та же неправильная конфигурация проявлялась как API Error: Truncated event message received после того, как весь ответ был буферизирован.

Что делать:

  • Настройте шлюз на пропуск тела ответа InvokeModelWithResponseStream и его заголовка Content-Type без изменений. Промежуточное звено, которое повторно излучает поток как события, отправляемые сервером, — распространённая причина.
  • Установка CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1 скрывает эту ошибку, но Claude Code не декодирует двоичное тело под переписанным заголовком, поэтому эти запросы переходят на более медленный путь без потока. См. Streaming errors behind a gateway or proxy.

SSL certificate errors

Прокси или устройство безопасности в вашей сети перехватывает трафик TLS со своим собственным сертификатом, и Claude Code ему не доверяет.

Unable to connect to API: SSL certificate verification failed (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config
Unable to connect to API: Self-signed certificate detected (SELF_SIGNED_CERT_IN_CHAIN). The certificate comes from an authority Claude Code doesn't trust, usually a TLS-inspecting corporate proxy or a gateway signed by a private CA: set NODE_EXTRA_CA_CERTS to that CA bundle, or add it to the system certificate store · see https://code.claude.com/docs/en/network-config

До версии v2.1.273 оба сообщения заканчивались на Check your proxy or corporate SSL certificates, без кода OpenSSL или подсказки NODE_EXTRA_CA_CERTS.

Начиная с версии v2.1.199, сбой проверки сертификата не повторяется, поэтому эта ошибка появляется при первой попытке вместо того, чтобы появиться после полного retry budget. Более ранние версии потратили несколько минут на повторные попытки перед её отображением. Переходящие условия TLS, такие как тайм-аут рукопожатия, всё ещё повторяются.

Во время /login и проверки подключения при запуске тот же сбой производит другое сообщение:

SSL certificate error (UNABLE_TO_GET_ISSUER_CERT_LOCALLY). If you are behind a corporate proxy or TLS-intercepting firewall, set NODE_EXTRA_CA_CERTS to your CA bundle path, or ask IT to allowlist *.anthropic.com. Run `claude doctor` for details.

На Amazon Bedrock запросы, которые Claude Code сам отправляет в AWS, такие как вызовы учётных данных роли STS и SSO, обнаружение модели и проверки мастера настройки, зависят от той же конфигурации сертификата. См. Certificate errors behind a TLS-inspecting proxy.

Что делать:

  • Экспортируйте пакет CA вашей организации и укажите Claude Code на него с помощью NODE_EXTRA_CA_CERTS=/path/to/ca-bundle.pem
  • См. Network configuration для полных инструкций по настройке
  • Не устанавливайте NODE_TLS_REJECT_UNAUTHORIZED=0, что полностью отключает проверку сертификата

Host not allowed in a cloud session

Исходящий HTTP-запрос из облачного сеанса или подпрограммы был заблокирован политикой сети среды.

HTTP 403
x-deny-reason: host_not_allowed

Вы также можете увидеть сертификат TLS, который не соответствует реальному сертификату пункта назначения. Облачные сеансы маршрутизируют исходящий трафик через прокси, который применяет политику сети, поэтому несоответствующий сертификат означает, что прокси завершил соединение, а не пункт назначения.

Это не проблема сети на стороне клиента. Облачные сеансы и routines работают внутри изолированной виртуальной машины, исходящий трафик которой через сеанс отфильтрован в cloud environment's список разрешений; GitHub operations и трафик соединителя MCP используют отдельные каналы, поэтому они могут продолжать работать, пока другие хосты заблокированы. Среда Default использует доступ Trusted, который разрешает default allowlist реестров пакетов, API поставщиков облака, реестров контейнеров и распространённых доменов разработки и блокирует другие домены на этом пути.

Что делать:

Эти шаги изменяют одну из ваших собственных сред. Организационная общая среда открывается только для чтения в селекторе, поэтому попросите владельца изменить её сетевой доступ со страницы Cloud environments в admin settings.

  • Откройте вашу среду для редактирования, либо из routine's form, либо из environment selector, где вы запускаете облачные сеансы.
  • В диалоговом окне Edit cloud environment измените Network access с Trusted на Custom, затем добавьте заблокированный домен в Allowed domains. Введите один домен в строку. Установите флажок Also include default list of common package managers, чтобы сохранить default allowlist вместе с вашими пользовательскими доменами. Выберите Full вместо этого, если вы хотите неограниченный доступ.
  • Нажмите Save changes. Следующий запуск использует обновленный список разрешений. Для облачного сеанса, который уже открыт, см. when a network access change reaches existing sessions.

См. Network access для уровней доступа и списка разрешений по умолчанию. Локальные сеансы CLI не затронуты этой политикой.

The proxy refused the connection

Вы видите это сообщение, когда Claude читает artifact через прокси, который вы установили в HTTPS_PROXY или связанную proxy variable. Содержимое артефакта поступает из *.frame.claudeusercontent.com, поэтому Claude Code сначала отправляет прокси запрос CONNECT, прося его открыть туннель к этому хосту. Когда прокси отказывает, ничего не достигает хоста, и сообщение содержит статус HTTP прокси:

artifact content fetch failed (proxy refused the connection: HTTP 407)
artifact content fetch failed (proxy refused the connection: HTTP 403)
the proxy refused the connection to the artifact's content host (HTTP 502)

Статус — это ответ прокси на CONNECT. Хост никогда не ответил, поэтому каждый статус указывает на другое исправление:

  • HTTP 407: прокси требует учётные данные, которые он не получил. Поместите их в URL прокси, как показано в Basic authentication.
  • HTTP 403: прокси отказывается туннелировать к *.frame.claudeusercontent.com. Попросите того, кто управляет прокси, разрешить этот хост, который Network access requirements перечисляет.
  • Любой другой статус, такой как HTTP 502: прокси не открыл туннель по своей причине, такой как неудача достижения хоста. Посмотрите статус в журналах прокси.
  • unreadable reply вместо статуса: то, что находится по адресу прокси, не ответило строкой статуса HTTP. Проверьте, что адрес — это HTTP-прокси.

Что делать:

  • Проверьте адрес и учётные данные в переменной прокси, как описано в Proxy configuration, затем запустите 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 allowlisting нужно сохранить на прокси.

До версии v2.1.238 Claude Code сообщал об отказанном туннеле как об общей ошибке сети.

The cloud environments service returned an empty or unexpected response

Claude Code запрашивает ваш список cloud environments в нескольких местах, например, когда вы создаёте облачный сеанс из CLI или запускаете /remote-env. Когда он не может прочитать ответ сервера, он показывает одно из этих сообщений:

The cloud environments service returned an empty response (HTTP 200 with no body). This is usually temporary — try again in a moment.
The cloud environments service returned a response in an unexpected format (HTTP 200 with a non-JSON body). This is usually temporary — try again in a moment.
The cloud environments service returned a response in an unexpected format (HTTP 200 without a usable environments list). This is usually temporary — try again in a moment.

Сервер принял запрос, но ответил телом, которое не является списком сред: пусто, не JSON или JSON без списка. Это обычно сопровождает сбой на стороне сервиса и очищается самостоятельно. В зависимости от поверхности, которая запросила список, Claude Code может добавить префикс, такой как couldn't list environments: в диалоговом окне /remote-env.

Что делать:

  • Повторите действие. Claude Code запрашивает список снова каждый раз
  • Если сообщение продолжает появляться, проверьте status.claude.com на наличие активных инцидентов

До версии v2.1.236 Claude Code показывал необработанную ошибку JavaScript TypeError вместо этих сообщений.

Couldn't reconnect to your Remote Control session

Couldn't reconnect to your Remote Control session. Retry, or start a fresh session without --resume.

Возобновление с помощью claude --resume или claude --continue переподключается к сеансу Remote Control, записанному в этом разговоре. Это сообщение означает, что переподключение не удалось по причине, которая может быть временной, такой как сетевой сбой или ошибка сервера, поэтому Claude Code не может подтвердить, существует ли удалённый сеанс. Ваш локальный сеанс продолжает работать без Remote Control.

Что делать:

  • Запустите /remote-control для повторной попытки подключения
  • Запустите новый сеанс с помощью claude --remote-control, чтобы создать новый сеанс Remote Control
  • Для других сообщений запуска Remote Control см. Troubleshoot 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, которую ваша машина обслуживала. Сеансы в этой среде закончились, и вы не можете их возобновить. Количество — это количество сеансов, которые закончились.

2 sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.

Что делать:

  • Когда Claude Code перечисляет сохранённые worktrees под этим сообщением, подберите любую незафиксированную работу из них
  • Запустите claude remote-control для запуска свежей среды

Couldn't share the transcript

После того как вы согласитесь поделиться стенограммой вашего сеанса из приглашения опроса, такого как session quality survey, Claude Code загружает её в Anthropic или сохраняет локальный архив вместо этого на сторонних поставщиков, на сеансах Claude apps gateway и когда нет доступных учётных данных Anthropic. Это сообщение означает, что общий доступ не завершился.

Couldn't share the transcript.

Загрузка должна соответствовать лимиту 8 MiB. На длинном сеансе Claude Code прогрессивно отбрасывает части общего доступа, параметры модели последнего запроса в первую очередь, затем структурированный разговор и стенограммы подагента, и показывает это сообщение только когда никакая сокращённая версия не может быть отправлена или сетевая или ошибка сервера останавливает загрузку. Когда Claude Code сохраняет локальный архив вместо этого, сообщение означает, что он не мог записать архив.

Что делать:

  • Запустите /feedback для отправки стенограммы с описанием того, что произошло. См. Report an error, если /feedback недоступен в вашей среде
  • Если другие запросы также не удаются, проверьте ваше сетевое соединение и см. Unable to connect to API

Couldn't send feedback

Вы отправили отчёт из диалогового окна /feedback, /bug, или /share и загрузка в Anthropic не удалась. Диалоговое окно сохраняет ваш текст, чтобы вы могли повторить попытку.

Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.

Текст после префикса указывает, что не удалось:

  • : not signed in. Run /login, then retry.: диалоговое окно загружает только когда Claude Code нашёл учётные данные Anthropic при его открытии, и ни один из них не был пригоден к использованию к моменту отправки. Например, вы вышли на этой машине в то же время, или ваш вход больше не может быть обновлён.
  • Скобка: (server returned <status>) — это код ответа сервиса; (request timed out) и (couldn't reach the service) — это сетевые сбои. Когда Claude Code не может назвать причину, скобка отсутствует.

В feedback drafts queue тот же сбой заканчивается с The draft is still queued. Try again later. вместо этого, и черновик остаётся в очереди для другой попытки.

Что делать:

  • Для формулировки не подписано, запустите /login и отправьте снова
  • В противном случае отправьте снова; если другие запросы также не удаются, проверьте ваше сетевое соединение и см. Unable to connect to API
  • Если это продолжает не удаваться, подайте отчёт на github.com/anthropics/claude-code/issues, как говорит сообщение

До версии v2.1.281 каждая отправка не удавалась с этим сообщением один раз, когда Remote Control Stop или срочное кросс-сеансовое сообщение прибыло, пока диалоговое окно было открыто. На этих версиях закройте диалоговое окно, откройте его снова и отправьте снова.

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

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

Prompt is too long

Разговор плюс прикреплённые файлы превышают контекстное окно модели.

Prompt is too long

В интерактивном сеансе Claude Code показывает эту ошибку как:

Context limit reached · /compact или /clear для продолжения

Строка указывает только /clear, когда установлена DISABLE_COMPACT. Более длинные формы ошибки, такие как форма сбоя компактирования ниже, сохраняют формулировку Prompt is too long ·. В выводе -p и в расшифровке текст остаётся Prompt is too long.

Когда вы отключили автоматическое компактирование в пользовательских настройках, строка также это указывает:

Context limit reached · /compact или /clear для продолжения · auto-compact отключён · /config для его включения

Переключатель 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 не распознавал токен, поэтому автоматическое компактирование не срабатывало на нём.

Когда автоматическое компактирование выполнялось на этом ходу и завершилось с ошибкой на основной ошибке, такой как недоступная модель или ошибка аутентификации, сообщение называет эту ошибку после разделителя:

Prompt is too long · automatic compaction failed: <основная ошибка>

Сначала разрешите названную ошибку; /compact завершается с той же ошибкой, пока вы этого не сделаете. До версии 2.1.229 неудачное автоматическое компактирование выводило Prompt is too long без указания причины.

Когда автоматическое компактирование выполняется на этой ошибке, оно обычно суммирует ваши самые старые обмены и сохраняет самые новые. В качестве последней меры Claude Code суммирует иначе:

  • Когда он не может суммировать какой-либо целый обмен, Claude Code сохраняет ваш самый новый prompt слово в слово и суммирует всё перед ним.
  • В этом случае, когда разговор не заканчивается вашим prompt, Claude Code суммирует весь разговор вместо этого.

Claude Code пропускает это восстановление, когда содержимое, которое оно должно было бы перенести, не содержит ответа модели и менее примерно 1000 токенов вашего собственного текста, такого как короткий повтор, отправленный после чрезмерно большой вставки. Запустите /clear для начала заново. До версии 2.1.269 компактирование завершалось с ошибкой всякий раз, когда оно не могло суммировать целый обмен, поэтому сеанс в этом состоянии получал эту ошибку снова на каждом ходу.

Однооборотный разговор не имеет более ранних ходов для суммирования. Когда автоматическое компактирование должно было выполниться на одном, Claude Code пропускает попытку и объясняет, что заполняет запрос. Когда API не сообщает количество токенов в своей ошибке, сообщение читается:

Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.

Когда API сообщает количество токенов в своей ошибке, Claude Code сравнивает их со своей оценкой размера разговора, чтобы определить, что занимает большую часть запроса: содержимое самого разговора или системный prompt, определения инструментов и содержимое вложений, которые Claude Code отправляет с ним. Когда содержимое самого разговора занимает большую часть запроса, сообщение читается:

Prompt is too long · the request is ~<токены запроса> tokens (limit <лимит>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).

Когда большая часть запроса находится вне разговора, сообщение читается:

Prompt is too long · the request is ~<токены запроса> tokens (limit <лимит>) but this conversation is only ~<токены разговора> tokens — the rest is system prompt, tool definitions, and attachment content. A single-exchange conversation cannot be compacted; reduce attached files/tools or start with less context.

До версии 2.1.162 Claude Code всё равно пытался выполнить компактирование и выводил простой Prompt is too long при его неудаче.

Что делать:

  • Запустите /compact для суммирования более ранних ходов и освобождения места, или /clear для начала заново. Если /compact ответит Not enough messages to compact., разговор — это однооборотный обмен без более ранних ходов для суммирования, поэтому место занято этим одним prompt и тем, что Claude Code отправляет с каждым запросом: запустите /clear и отправьте заново с меньшим вставленным текстом или меньшими вложениями, или уменьшите определения инструментов и файлы памяти, используя шаги ниже
  • Запустите /context для просмотра разбивки того, что потребляет окно: системный prompt, инструменты, файлы памяти и сообщения
  • Отключите MCP серверы, которые вы не используете, с помощью /mcp disable <имя> для удаления их определений инструментов из контекста
  • Обрежьте большие файлы памяти CLAUDE.md или переместите инструкции в правила с областью действия пути, которые загружаются только при необходимости
  • Автоматическое компактирование включено по умолчанию и обычно предотвращает эту ошибку. Если вы отключили его в /config или с помощью DISABLE_AUTO_COMPACT, включите его обратно. Если вы держите его отключённым, запустите /compact самостоятельно перед заполнением окна.

Смотрите Explore the context window для интерактивного просмотра того, как заполняется контекст.

Context exceeds the token limit

/context показывает это предупреждение в верхней части своего вывода, когда разговор превысил контекстное окно модели. Запросы завершаются с Prompt is too long до тех пор, пока вы не освободите место. Интерактивный сеанс показывает эту ошибку как строку Context limit reached.

Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

Когда превышенный лимит — это окно компактирования, такое как граница 200K на моделях с контекстом 1M, предупреждение читается иначе. Окно компактирования может находиться ниже контекстного окна модели, поэтому запросы за его пределами могут всё ещё успешно выполняться.

Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.

Обе формы называют /clear вместо /compact, когда вы установили DISABLE_COMPACT.

Что делать:

  • В многооборотном разговоре запустите /compact для суммирования более ранних ходов и освобождения места. Для начала заново запустите /clear
  • Для дополнительных способов снижения использования смотрите Prompt is too long

До версии 2.1.216 /context показывал использование выше 100% без строки предупреждения, объясняющей, что это означает или как восстановиться.

Request too large

Тело необработанного запроса превысило лимит API в 32MB перед токенизацией, обычно из-за большого вставленного содержимого, результатов инструментов или вложений. Этот лимит отделён от контекстного окна.

Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.

Когда запрос прошёл прямо в 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.

Image was too large. Double press esc to go back and try again with a smaller image.
API Error: 400 ... image dimensions exceed max allowed size

Claude Code заменяет необработанное изображение текстовым заполнителем и повторяет попытку, поэтому последующие сообщения успешны. В версиях до 2.1.142 вставленное изображение могло остаться в разговоре и повторить ту же ошибку на каждом последующем сообщении. Для восстановления в этих версиях нажмите Esc дважды и вернитесь на ход, где было добавлено изображение.

Что делать:

  • Измените размер изображения перед вставкой. API принимает изображения до 8000 пикселей на самой длинной стороне для одного изображения или 2000 пикселей, когда в контексте много изображений.
  • Сделайте более плотный снимок экрана соответствующей области вместо полного экрана

Unable to resize image

Claude Code не смог уменьшить масштаб прикреплённого изображения перед отправкой его в API.

Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP.
Unable to resize image — dimensions exceed the 2000x2000px limit and image processing failed. Please resize the image to reduce its pixel dimensions.
Unable to resize image (… raw, … base64). The image exceeds the … API limit and compression failed. Please resize the image manually or use a smaller image.
Unable to resize image — could not verify image dimensions are within the 2000x2000px API limit.
Unable to resize image — it is a CMYK JPEG, which Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Re-save it as an RGB PNG or JPEG and try again.
Unable to resize image — it is an animated WebP whose first frame Claude Code cannot decode, and at …px it is over the 2000x2000px limit, so it cannot be sent. Save its first frame as a PNG or JPEG and try again.
Unable to resize image — its pixels could not be decoded (the file may be damaged, or use an encoding Claude Code cannot read), and it is over the … API limit (… raw, … base64), so it cannot be sent. Re-save it as a PNG or JPEG and try again.

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

Что делать:

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

PDF errors

Прикреплённый PDF не смог быть обработан. Сообщения показаны здесь в их неинтерактивной форме; в интерактивном сеансе они вместо этого предлагают вам дважды нажать esc и попробовать снова.

PDF too large (max 100 pages, 20MB). Try reading the file a different way (e.g., extract text with pdftotext).
PDF is password protected. Try using a CLI tool to extract or convert the PDF.
The PDF file was not valid. Try converting it to text first (e.g., pdftotext).

Что делать:

  • Для больших PDF попросите Claude прочитать диапазон страниц с помощью инструмента Read вместо прикрепления всего файла, или извлеките текст с помощью инструмента, такого как pdftotext, и ссылайтесь на выходной файл по пути
  • Для защищённых или недействительных PDF удалите пароль или повторно экспортируйте файл из исходного приложения, затем попробуйте снова

Когда Claude читает диапазон страниц из PDF с помощью инструмента Read, чтение может завершиться с другим сообщением:

pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.

Чтение диапазона страниц отображает страницы с помощью pdftoppm. Установите poppler-utils с помощью команды, которую даёт сообщение, или на других платформах сборку poppler, которая помещает pdftoppm на ваш PATH. Смотрите Read tool behavior для того, какие PDF читаются по диапазону страниц.

Extra inputs are not permitted

Прокси или шлюз LLM между Claude Code и API удалил заголовок запроса anthropic-beta, поэтому API отклонил поля, которые от него зависят.

API Error: 400 ... Extra inputs are not permitted ... context_management

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

Что делать:

Tool input schema is invalid

Инструмент в запросе объявил input_schema, который не проходит валидацию JSON Schema API, поэтому API отклонил весь запрос. Число после tools. — это позиция неудачного инструмента в списке инструментов запроса, а не имя, которое вы можете найти.

API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid
API Error: 400 ... tools.N.custom.input_schema.properties: Property keys should match pattern '^[a-zA-Z0-9_.-]{1,64}$'

Первая форма означает, что схема не является действительной JSON Schema draft 2020-12. Вторая означает, что имя свойства верхнего уровня не соответствует шаблону, который называет сообщение.

Claude Code исключает MCP инструменты, чья схема входных данных не прошла бы эту валидацию при загрузке инструментов сервера, поэтому запросы обычно никогда не включают один.

На развёртывании, где получение флагов отключено, или на машине, флаги которой никогда не прибывали, Claude Code записывает в журнал сервера, какой инструмент будет отклонён, но отправляет его всё равно, поэтому эта ошибка всё ещё может произойти.

Ошибка также может произойти для инструмента, чья схема объявляет диалект JSON Schema, отличный от draft 2020-12, в $schema. 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.

tool\_use.name over 200 characters

Вызов инструмента в истории разговора содержит имя, превышающее 200 символов, которые API принимает в запросе:

API Error: 400 ... tool_use.name: String should have at most 200 characters

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 конечная подсказка, показанная здесь в её интерактивной форме, варьируется в зависимости от поверхности.

There's an issue with the selected model (claude-...). It may not exist or you may not have access to it. Run /model to pick a different model.

Что делать:

  • Интерактивный 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 troubleshooting.

Model is not a recognized model id

Строка, которую вы передали переключателю модели, не является одним Claude Code может использовать как модель, поэтому он отклонил переключение без отправки запроса и сеанс сохраняет свою текущую модель. Вы можете получить эту ошибку, когда модель установлена через метод Agent SDK setModel(), приложением, которое запускает Claude Code CLI для вас, такое как Desktop app, или когда вы выбираете модель с устройства, подключённого через Remote Control. До версии 2.1.200 Claude Code сохранял строку и завершался с ошибкой на следующем запросе с There's an issue with the selected model.

Model "Sonnet5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

В этом примере приложение отправило отображаемое имя 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 всё ещё может написать неузнанную диагностическую строку ID модели во время запроса на каждом поставщике.

Model not found

Вы выбрали модель по имени и Claude Code не смог подтвердить, что модель с этим именем существует. Когда имя не является псевдонимом модели или другим написанием Claude Code принимает локально, Claude Code проверяет его с минимальным запросом API, и эта ошибка обычно является ответом вашей конечной точки API. С /model <имя>, имя, которое не может быть ID модели вообще, такое как содержащее пробелы, получает то же сообщение.

Model 'claude-opus-9' not found

На поставщиках с ID моделей, специфичными для поставщика, сообщение может добавить предложение Try '...' instead, которое называет ID вашего поставщика для резервной модели.

Что делать:

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

Couldn't confirm model with the API

Вы выбрали модель через метод Agent SDK setModel() или приложение, которое запускает Claude Code CLI для вас, такое как Desktop app, и запрос, который подтверждает ID модели с вашей конечной точкой API, не получил ответ в течение пяти секунд. Сеанс сохраняет свою текущую модель.

Couldn't confirm model "claude-sonnet-5" with the API. Try again, or run /model to see available models.

В сеансе, который Desktop app запускает для вас, сообщение заканчивается на Try again.

Что делать:

  • Переключитесь на модель снова
  • Если переключение продолжает завершаться с ошибкой, проверьте, что Claude Code может достичь вашу конечную точку API; смотрите Network and connection errors

API error when checking the picked model

Вы выбрали модель с /model <имя>, или приложение, подключённое к сеансу, запросило переключение. API отклонил минимальный запрос, который Claude Code отправляет для проверки модели, по причине, которая не имеет собственной записи, такой как ограничение скорости или ошибка сервера. Сеанс сохраняет свою текущую модель, и сообщение заканчивается, говоря об этом:

API error: 429 <объяснение сервера> · model not changed

Середина сообщения — это статус HTTP и собственное объяснение сервера.

Что делать:

  • Действуйте в соответствии с объяснением сервера; для ограничения скорости или статуса 5xx подождите и выберите модель снова
  • Отказы с собственной формулировкой охватываются окружающими записями, такими как Model not found и Model is restricted by your organization's settings

Claude Opus is not available with the Claude Pro plan

Ваш активный план подписки не включает выбранную вами модель.

Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.

В сеансе, который Claude Desktop app запускает, сообщение говорит sign out and sign in again вместо названия команд.

Что делать:

  • Запустите /model и выберите модель, которую включает ваш план
  • Если вы недавно обновили свой план и всё ещё видите это, запустите /logout, затем /login. Сохранённый токен отражает ваш план на момент входа, поэтому обновление в интернете не вступает в силу в существующем сеансе до повторной аутентификации.
  • Смотрите claude.com/pricing для того, какие модели включает каждый план

Claude Code does not support this model

API отклонил запрос с 400, потому что ваша версия Claude Code ниже требуемого минимума. Либо выбранная вами модель требует более новую версию, которую сервер проверяет для каждой модели, либо политика вашей организации требует одну. 400 несёт код ошибки claude_code_version_too_old, и сообщение говорит, какой минимум применяется.

API Error: 400 Claude Code 2.1.219 does not support this model; version 2.1.255 or newer is required. Run 'claude update', or update the Claude desktop app, then try again.

Формулировка политики организации читается:

API Error: 400 Claude Code 2.1.240 is older than the minimum version required by your organization's policy. Run 'claude update', or update the Claude desktop app, to continue.

Версия, которую API проверяет, — это версия, сообщённая бинарным файлом Claude Code, который сделал запрос.

Что делать:

Обновите этот бинарный файл, затем начните новый сеанс. Откуда пришёл бинарный файл, решает как, кроме self-hosted environment:

Бинарный файл, который сделал запрос Как его обновить
Claude Code, который вы установили Запустите claude update
Claude desktop app Обновите приложение
Бинарный файл, который VS Code extension объединяет Обновите расширение
Бинарный файл, который пакет Agent SDK объединяет Обновите пакет SDK, затем перезагрузите ваше приложение. В скомпилированном однофайловом исполняемом файле, пересоберите его
  • Для формулировки для каждой модели вы можете продолжить работу в текущем сеансе, переключившись на другую модель: запустите /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 "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.

Ввод /model <имя> для ограниченной модели отклоняется и сеанс сохраняет свою текущую модель. Для модели, отключённой в консоли администратора, отказ читается Model '<имя>' is restricted by your organization's settings. Run /model to choose a different model. Для модели, которую управляемые настройки исключают, он читается Model '<имя>' 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 ограниченный псевдоним семейства разрешается в новейшую версию семейства, которую разрешают ваша организация и список разрешений availableModels, и уведомление о подстановке называет эту версию. Claude Code отклоняет /model <псевдоним> только когда каждая версия семейства ограничена. До версии 2.1.205 псевдоним семейства был подставлен или отклонен на основе только его новейшей версии, даже когда была разрешена более старая версия того же семейства.

Что делать:

  • Запустите /model для выбора из моделей, которые разрешает ваша организация. Ограниченные модели скрыты от выбора.
  • Если ограниченная модель была установлена в --model, ANTHROPIC_MODEL, поле model файла настроек или frontmatter подагента, навыка или команды, удалите или обновите это значение, чтобы уведомление не повторялось
  • Если вам нужен доступ к ограниченной модели, попросите администратора вашей организации её включить. Смотрите Organization model restrictions.

Can't switch to the default model

Вы выбрали модель Default, например, выбрав строку Default в выборе /model или введя /model default. Claude Code отклонил переключение, поэтому сеанс сохраняет свою текущую модель.

Can't switch to the default model: your organization's managed settings block it (claude-opus-4-6) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

Формулировка после двоеточия называет, что заблокировало переключение:

  • 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 hook не одобрил переключение модели, которое вы или клиент запросили, поэтому сеанс сохраняет свою текущую модель. Когда переключение пришло от хоста Agent SDK или Remote Control, а не от команды, которую вы ввели, сообщение читается Model switch blocked by a PreModelSwitch hook без названия целевой модели.

Model switch to Opus 4.6 was blocked by a PreModelSwitch hook: Opus 4.6 is retired for this project. Use a newer model.

Причина после двоеточия говорит, что отклонило переключение:

  • Причина, которую написал хук: хук PreModelSwitch предоставил эту причину, когда он отклонил переключение или попросил подтверждение. Обратитесь к тому, что он просит, или выберите модель, которую разрешают ваши хуки.
  • PreModelSwitch hook <имя> did not respond before its timeout: хук, который не отвечает перед его 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 <имя> или Enter в выборе /model, и Claude Code не смог написать выбор в файл пользовательских настроек, ~/.claude/settings.json. Само переключение применилось, поэтому текущий сеанс работает на выбранной вами модели, но ваше значение по умолчанию не изменяется и следующий сеанс начинается со старого значения.

Set model to Fable 5.1 for this session only · couldn't save it as your default: ~/.claude/settings.json can't be written (EROFS)

Причина после пути файла говорит, что не удалось:

  • can't be written (<код>): запись не удалась с кодом ошибки операционной системы в скобках, такой как 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 <имя> снова.

До версии 2.1.265 уведомление говорило, что модель была saved as your default for new sessions, даже когда запись не удалась.

thinking.type.enabled is not supported for this model

Ваша версия Claude Code старше минимума для выбранной модели. CLI отправил конфигурацию мышления, которую модель больше не принимает.

API Error: 400 ... "thinking.type.enabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

Что делать:

  • Запустите 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 или позже
  • Если вы не можете обновиться, запустите /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

Вы отключили extended thinking и работали на уровне усилий выше high. Модель не принимает эту комбинацию, поэтому API отклонил запрос.

API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)

Подсказка после · варьируется в зависимости от сеанса: в неинтерактивном сеансе она читается use --effort high (or the effortLevel setting), и в сеансе, который Claude Desktop app запускает, она читается 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 отправлял запрос на уровне усилий, который вы установили, поэтому Opus 5 отклонял каждый запрос выше high с отключённым мышлением. Claude Code теперь отправляет усилие high вместо этого моделям, которые, как он знает, отклоняют комбинацию, такие как Opus 5.

Thinking budget exceeds output limit

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

API Error: 400 ... max_tokens must be greater than thinking.budget_tokens

Что делать:

Tool use or thinking block mismatch

История разговора достигла API в несогласованном состоянии.

API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.
API Error: 400 orphaned tool_result in conversation history. Run /rewind to recover the conversation.
API Error: 400 duplicate tool_use ID in conversation history. Run /rewind to recover the conversation.
API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks
API Error: 400 ... thinking blocks ... cannot be modified

Все варианты означают одно и то же: последовательность блоков tool_use, tool_result и thinking в истории больше не соответствует тому, что ожидает API.

Что делать:

  • Если вы используете Opus 4.7 или Opus 4.8, сначала запустите claude update. Версии до v2.1.156 могут вызвать эту ошибку во время нормального использования инструмента, и /rewind её не очищает.
  • Запустите /rewind или нажмите Esc дважды, чтобы вернуться к checkpoint перед повреждённым ходом и продолжить оттуда. Смотрите Checkpointing для того, как создаются и восстанавливаются checkpoints.

Invalid data in redacted\_thinking block

API отклонил запрос с 400, потому что он не смог принять блок redacted_thinking, который более ранний ход в истории разговора содержит.

API Error: 400 ... Invalid `data` in `redacted_thinking` block

Claude Code оставляет мышление разговора из более ранних ходов вне запроса и повторяет один раз, поэтому сеанс продолжается без показа ошибки. До версии 2.1.282 Claude Code сохранял отклонённый блок, и каждый более поздний ход завершался с той же ошибкой.

Что делать:

  • Если вы на v2.1.281 или раньше и каждый ход завершается с этой ошибкой, запустите claude update и возобновите сеанс
  • Если ошибка сохраняется, запустите /clear для начала разговора, который не содержит блок

Unsupported tool content removed

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

[Unsupported tool content removed]

Такое содержимое достигает файла сеанса, когда что-то другое, чем Anthropic API, ответило в формате 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, потому что системное сообщение находится в позиции в разговоре, которую он не принимает:

API Error: 400 messages.6: role 'system' must precede an 'assistant' message or end the array; ...

Claude Code отправляет часть своего напоминания и текста вложений как системные сообщения внутри разговора. Когда API отклоняет позицию одного, Claude Code повторяет запрос один раз с этим текстом, отправленным как обычные пользовательские сообщения вместо этого. Формулировки соседства API, такие как use the top-level 'system' parameter for the initial system prompt, получают то же восстановление.

Когда ошибка действительно появляется, отклонённое системное сообщение не является тем, которое Claude Code может удалить. Это обычно означает, что прокси или LLM gateway между Claude Code и API добавил системное сообщение своё или переупорядочил разговор.

Что делать:

  • Если ошибка повторяется на каждом ходу позади прокси или шлюза, настроенного через ANTHROPIC_BASE_URL, подключитесь без прокси, чтобы подтвердить источник, и сообщите об ошибке тому, кто его управляет
  • Запустите /clear для начала свежего разговора. Если ошибка возвращается там тоже, причина находится на пути запроса, а не в сохранённом разговоре.

До версии 2.1.280 Claude Code не распознавал эту формулировку, поэтому ошибка также появлялась, когда отклонённое системное сообщение было тем, которое сам Claude Code отправил, и каждый более поздний ход разговора завершался с той же ошибкой.

Invalid encrypted\_content in search\_result block

API отклонил запрос с 400, потому что история разговора содержит размещённое содержимое веб-поиска, которое он не может расшифровать. Формулировка называет поле, которое он не может прочитать:

API Error: 400 ... Invalid `encrypted_content` in `search_result` block
API Error: 400 ... Invalid `encrypted_index` in `text` block
API Error: 400 ... Failed to decrypt web search result content
API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block

Результаты из размещённого инструмента веб-поиска API содержат зашифрованные поля, которые только API может прочитать. Формулировка encrypted_stdout называет вывод размещённой программы выполнения кода, которая прочитала такие результаты, которые API также шифрует. API отклоняет запрос, который воспроизводит содержимое, которое он не может расшифровать, такое как содержимое, созданное для другой организации.

Собственный инструмент WebSearch Claude Code записывает результаты поиска как простой текст, поэтому эти блоки обычно достигают разговора через прокси или LLM gateway, который сам запустил размещённый веб-поиск.

Для трёх формулировок веб-поиска Claude Code оставляет вызовы поиска, результаты и цитаты вне того, что он отправляет, и повторяет запрос один раз, поэтому сеанс продолжается без показа ошибки. Формулировка encrypted_stdout не имеет такого восстановления, поэтому это сообщение всё ещё достигает вас. До версии 2.1.282 Claude Code сохранял отклонённые блоки веб-поиска тоже, и каждый более поздний ход и /compact завершались с той же ошибкой.

Что делать:

  • Если вы на v2.1.281 или раньше и каждый ход завершается с одной из формулировок веб-поиска, запустите claude update и возобновите сеанс
  • Если ошибка сохраняется, или сообщение называет encrypted_stdout, запустите /rewind для возврата к checkpoint перед ходом, который добавил содержимое, или запустите /clear для начала разговора, который не содержит его
  • Если вы запускаете Claude Code позади прокси или шлюза, сообщите об ошибке тому, кто его управляет

Usage Policy refusal

API отклонил ответ, потому что содержимое в разговоре вызвало проверку Usage Policy.

Сообщение включает Request ID и Message ID, которые вы можете привести в поддержку, если вы считаете, что отказ неправильный.

API Error: Opus 4.6 can't help with this. Start a new session to continue.

Send feedback with /feedback or learn more: https://www.anthropic.com/legal/aup

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

Проверка оценивает весь разговор, а не только ваш последний prompt, поэтому отправка нового сообщения в том же сеансе обычно повторно вызывает тот же отказ. То же самое применяется после выхода и повторного открытия сеанса с --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, чтобы вернуться к checkpoint перед ходом, который вызвал отказ, затем переформулируйте или возьмите другой подход. Смотрите Checkpointing.
  • Если вы не можете определить, какой ход вызвал это, запустите /clear, чтобы начать свежий разговор в том же проекте. Ваш предыдущий разговор сохраняется на диске и остаётся доступным в /resume.
  • В неинтерактивном режиме (-p), где перемотка недоступна, повторите попытку с переформулированным prompt в новом сеансе без --continue. Проверки политики варьируются в зависимости от модели, поэтому переключение на другую модель с помощью --model также может разрешить отказ в некоторых случаях.

Safety measures flagged a cybersecurity topic

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

API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

Сообщение ссылается на Cyber Verification Program, который предоставляет доступ для законной работы в области кибербезопасности. На Opus 5.5 и Sonnet 5.5 сообщение открывается с <модель>'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 сообщение читалось <модель> 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 оно читалось <модель>'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, чтобы вернуться к checkpoint перед ходом, который вызвал флаг, затем возьмите другой подход. Смотрите Checkpointing.

Ошибки установки

Эти ошибки появляются при установке или обновлении Claude Code из скрипта установки, claude install или claude update. Для проблем с command not found, PATH, разрешениями и TLS во время установки см. Устранение неполадок установки и входа.

Установка была прервана до завершения

Скрипт установки сообщает, когда этап claude install завершается сигналом. На Linux код выхода 137 означает, что процесс получил SIGKILL, а на хосте с низким объёмом памяти это обычно означает, что ядро активировало средство защиты от нехватки памяти (OOM killer). Скрипт выводит это объяснение и завершается с кодом 137:

Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory.
Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

Для любого другого фатального сигнала и для кода выхода 137 на macOS скрипт выводит Installation was killed before it could finish (exit code <N>) с фактическим кодом выхода и опускает объяснение о нехватке памяти. Сообщение поступает из скрипта установки, который используют macOS и Linux, и он также охватывает установки внутри WSL; встроенные скрипты установки Windows никогда его не выводят. До версии 2.1.200 скрипт завершался только с простой строкой Killed оболочки.

Что делать:

Соединение разорвалось при загрузке обновления

Соединение с сервером загрузки закрылось, пока claude install или claude update загружал двоичный файл Claude Code, и повторные попытки не восстановили соединение. Claude Code повторяет загрузку, когда соединение разрывается, передача зависает или загруженный файл не проходит проверку контрольной суммы, всего до трёх попыток. Завершённая ошибка HTTP, такая как 404, не повторяется, потому что сервер уже ответил. До версии 2.1.202 одно разорванное соединение немедленно приводило к сбою загрузки с простой ошибкой aborted вместо повторной попытки.

The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.

Текст в скобках указывает, какая попытка не удалась и какая была базовая ошибка сети. claude update предваряет сообщение с Error: Failed to install native update на stderr.

Загрузка, которая остаётся подключённой, но не завершается в течение 10 минут, завершается с ошибкой Download timed out: exceeded the total deadline. Claude Code не повторяет загрузку с истекшим временем ожидания, потому что соединение, которое слишком медленно для завершения в течение установленного срока, не завершится при немедленной повторной попытке. Приведённые ниже шаги применяются к обоим сообщениям.

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

Что делать:

  • Запустите claude update снова. На в остальном здоровой сети загрузка обычно успешна при следующем запуске. Для сообщения об истечении времени ожидания запустите его снова из более быстрой или менее ограниченной сети.
  • Если ваша сеть требует прокси, установите HTTPS_PROXY перед запуском установщика или claude update. См. Проверка подключения к сети.
  • Если корпоративный прокси продолжает закрывать передачу, попросите вашу команду сети разрешить полную загрузку с downloads.claude.ai. См. Требования к доступу в сеть.
  • Запустите claude doctor из вашей оболочки для диагностики установки

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

Эти ошибки исходят от командной строки 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 такая комбинация молча создавала фоновую задачу, к которой никогда нельзя было подключиться.

--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.

Что делать:

  • Уберите -p или --print. --bg принимает промпт как позиционный аргумент, поэтому claude --bg "<task>" — это полная команда. См. Запуск новых агентов из оболочки.
  • Чтобы выполнить промпт неинтерактивно и вывести результат вместо создания фоновой сессии, уберите --bg и выполните claude -p "<task>"

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

Вы передали --append-subagent-system-prompt вместе с --append-subagent-system-prompt-file в одном вызове claude, поэтому claude завершается с кодом выхода 1 вместо запуска сессии:

Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.

До 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 всё равно запускал сессию.

Error: Invalid --agents configuration:
<what failed>

Что следует за первой строкой, зависит от того, какую проверку не прошло значение. 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 отказывает на стороне клиента, до обращения к серверу, поэтому облачная сессия не создаётся:

Cloud sessions cannot be created from a --restricted session: they would not enforce it.

Что делать:

  • Выполните задачу локально в ограниченной сессии
  • Если вы управляете тем, как была запущена сессия, запустите новую сессию claude без --restricted и создайте облачную сессию из неё

До v2.1.248 в Claude Code не было флага --restricted; более ранние версии отклоняют сам флаг с ошибкой неизвестного параметра.

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

Политика allow_remote_sessions вашей организации выключена, поэтому облачные сессии и использующие их команды недоступны:

Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

Сообщение появляется, когда вы создаёте облачную сессию из терминала, и когда вы отправляете команду, которой нужны облачные сессии, например /teleport, /remote-env или /web-setup. До v2.1.268 отправка одной из этих команд возвращала Unknown command.

Это серверная политика организации, поэтому её нельзя переопределить локальными настройками, переменными окружения или флагами CLI.

Если Claude Code ещё не загрузил политику вашей организации или не может её получить, эти команды вместо этого отвечают Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.

Что делать:

  • Попросите Owner вашей организации включить облачные сессии в настройках администратора Claude Code по адресу claude.ai/admin-settings/claude-code
  • Если в сообщении говорится, что не удалось проверить политику, проверьте сетевое подключение, затем перезапустите Claude Code и повторите попытку

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

Схема, переданная в --json-schema в неинтерактивном режиме, не прошла компиляцию JSON Schema, поэтому claude завершается с кодом выхода 1 вместо выполнения промпта. До v2.1.205 недопустимая схема приводила к неструктурированному выводу без ошибки, а любая схема, использующая ключевое слово format, считалась недопустимой.

Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

Текст после второго двоеточия — это диагностика валидатора, которая называет ключевое слово или место, где произошёл сбой. Схемы, использующие ключевое слово 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, неограниченно увеличивал потребление памяти.

Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

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 аварийно завершался, выводя в stderr минифицированный исходный код бандла и необработанный стек ENOENT ... uv_cwd.

The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.
error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

Причина и решение одинаковы для обеих форм.

Если 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: no space left on device, mkdir '/tmp/claude-501'

Temp directory /tmp/claude-501 is not a directory (may be an attacker-planted symlink). Refusing to use it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

Temp directory /tmp/claude-501 is owned by uid 502, expected 501. Refusing to use it — another user may have pre-created it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

Что делать:

  • При 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 не может определить это расположение, он ничего не загружает и показывает это сообщение:

packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.

Что делать:

  • Убедитесь, что путь указывает на реальный каталог внутри рабочего каталога, затем снова выполните /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. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

Два варианта, которые тоже начинаются с Error: Workspace not trusted., появляются в терминале, слишком маленьком для отображения того, что включает доверие к каталогу, или в терминале, который не сообщил свой размер. Увеличьте окно или переключитесь на обычное окно терминала, затем снова выполните claude rc.

В домашнем каталоге сообщение другое, потому что диалоговое окно доверия к рабочему пространству никогда не сохраняет доверие для домашнего каталога, поэтому его принятие там не может удовлетворить эту проверку. До v2.1.214 в домашнем каталоге показывалось сообщение выше, совет которого там не может сработать.

Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

Если вы отвечаете 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 отказывается запускаться и называет флаг:

Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).

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 import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

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 с нечитаемым файлом конфигурации запускал интерактивную сессию, диалоговое окно восстановления которой обрабатывало файл.

Could not read Claude Code config — run `claude` with no arguments to recover it.

Что делать:

  • Выполните claude без аргументов. Claude Code обнаружит недопустимый файл и предложит сбросить его. Затем снова выполните claude import.
  • Чтобы сохранить сделанные вручную правки, вместо этого исправьте синтаксис JSON в ~/.claude.json в редакторе, затем повторно выполните claude import

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

Claude Code не смог добавить один из серверов, выбранных вами в claude mcp add-from-claude-desktop. Команда всё равно импортирует остальные выбранные серверы и выводит по одной строке на каждый сервер, который не удалось добавить. До v2.1.205 первый сервер со сбоем останавливал импорт.

Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

Текст после имени сервера — это причина. Самая распространённая — проверка имени: 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 читает их только из управляемых настроек, поэтому команда не может записать сервер в эту область действия.

Cannot add MCP server to scope: managed

Что делать:

  • Добавьте сервер в область действия, доступную для записи: 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, а не сохраняет сервер, который никогда не загрузится:

Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.

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, поэтому она завершается с этой ошибкой, не читая файл.

Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

До 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 считывает его после записи. Команда завершается с этой ошибкой вместо строки об успехе.

MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

После удаления сообщение содержит 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, чтобы подтвердить изменение. Изменение может как оказаться на диске, так и нет. Текст в скобках — это ошибка этого чтения.

MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

После удаления сообщение содержит 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.

"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.

Что делать:

  • Удалите свою запись с помощью claude mcp remove <name>, чтобы она не скрывала коннектор claude.ai с тем же URL
  • После удаления подключите сервис на claude.ai/customize/connectors, войдя в учётную запись, которую вы используете в Claude Code. После подключения коннектор автоматически появится в Claude Code, если ваш текущий способ аутентификации — вход по подписке claude.ai

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

MCP-сервер, у которого заголовок Authorization предоставляет headersHelper, ответил на подключение HTTP 401 или 403, поэтому Claude Code сообщает о сбое подключения. Поскольку заголовок Authorization предоставляет helper, Claude Code не переключается на OAuth для этого сервера:

Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

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 при запуске не ожидалось завершения подключения сервера, поэтому медленно запускающийся, но исправный сервер тоже приводил к этой ошибке.

Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

Список после 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 выбирает свободный порт.

OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

В Windows вместо этого предлагается команда netstat -ano | findstr :<port>.

Что делать:

  • Выполните команду из сообщения, чтобы найти процесс, занимающий порт, и остановите его или дождитесь его завершения
  • Если этот порт постоянно нужен другой программе, зарегистрируйте на сервере другой URI перенаправления и задайте его порт с помощью MCP_OAUTH_CALLBACK_PORT или --callback-port — в зависимости от того, что вы используете
  • Затем снова начните вход, например выбрав сервер в /mcp

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

Когда вы входите на удалённый MCP-сервер с помощью OAuth, Claude Code запускает локальный прослушиватель для получения обратного вызова входа. Вход завершается с этим сообщением, если Claude Code не может привязать для него локальный порт. Что-то на компьютере не даёт ему прослушивать 127.0.0.1, например защитное ПО или политика песочницы, запрещающая локальные прослушиватели.

No available ports for OAuth redirect

До 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, завершаются ошибкой, и проверка останавливается, не начавшись.

Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]
fatal: ambiguous argument 'origin/HEAD...': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

Вместо этого сообщение может цитировать 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, приводит к той же ошибке в любой среде.

Error: Input must be provided either through stdin or as a prompt argument when using --print

Что делать:

  • Для интерактивной работы запускайте claude в настоящем терминале: в Windows Terminal или консоли PowerShell, а не в ISE, и во встроенном терминале IDE, а не в панели вывода
  • Для однократного использования передайте промпт: claude -p "your question" или передайте его через конвейер с помощью echo "your question" | claude -p

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

В неинтерактивном режиме 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 символов без перевода строки

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

Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

Настолько длинный ввод без перевода строки обычно означает, что источник вообще не является источником stream-json, например это бинарный файл или обычный вывод лога, по ошибке переданные через конвейер. Одиночное сообщение, превышающее лимит, не проходит ту же проверку.

Что делать:

  • Проверьте, что передаётся в stdin. С --input-format stream-json каждое сообщение должно быть одной строкой JSON, завершающейся переводом строки
  • Чтобы вместо этого отправлять обычный текст, уберите --input-format stream-json; claude -p по умолчанию читает промпт в виде обычного текста из stdin

Unknown command

В интерактивной сессии терминала вы отправили имя с /, которое не совпадает ни с одной командой в этой сессии, поэтому Claude Code сообщает об этом имени, ничего не выполняя:

Unknown command: /hepl. Did you mean /help?

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.

Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.

При код-ревью 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.

Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.

Подсказка после первого предложения зависит от того, что обнаружил 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 отклоняют код-ревью до запуска облачной сессии.

Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.

До 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 не расходует бесплатный запуск и не списывает кредиты использования за отклонённый запуск.

Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).

Если /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 не расходует бесплатный запуск и не списывает кредиты использования за отклонённый запуск.

Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.

Если /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>), и заканчивается предложением о предварительной проверке:

Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead

Что делать:

  • Через некоторое время выполните команду повторно. Когда проверка 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 отклоняет загрузку, и ничего не загружается:

Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.

Сообщение называет настройку и место, где она задана, и заканчивается способом исправления для вашего случая. Такой же отказ появляется для core.attributesFile и attr.tree, у каждой из которых свой способ исправления.

Сообщение может называть файл конфигурации, который ваша конфигурация git подключает через директиву include или includeIf, даже если условие этой директивы не относится к данному репозиторию.

Что делать:

  • Примените исправление из последнего предложения сообщения

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

Вы запустили облачную сессию из своего локального репозитория, например с помощью /autofix-pr. К вашей учётной записи Claude не подключена учётная запись GitHub, или срок действия подключения истёк, поэтому Claude Code отклоняет запуск:

GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github

Когда вы создаёте routine с помощью /schedule, то же сообщение появляется как примечание к настройке с названием репозитория; это примечание не блокирует создание routine.

Что делать:

  • Выполните /web-setup, чтобы подключить свой вход GitHub CLI к учётной записи Claude, или подключите учётную запись на claude.ai/connect-github. Чем различаются эти способы, описано в разделе Варианты аутентификации GitHub.
  • Повторно выполните команду через минуту после подключения

До v2.1.268 Claude Code сообщал об этом как о временном сбое проверки Claude GitHub App и предлагал повторить попытку или установить приложение; ни то, ни другое не подключает учётную запись GitHub.

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

Вы выполнили /install-github-app и выбрали репозиторий, организация которого требует единый вход SAML. Перед настройкой Claude Code проверяет ваш доступ к репозиторию с помощью GitHub CLI, и GitHub отклонил эту проверку, потому что ваш токен gh ещё не авторизован для организации. Мастер показывает предупреждение с шагами для авторизации:

Single sign-on authorization needed
<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.

Что делать:

  • Повторно авторизуйте вход 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, поэтому он завершает процесс, а не продолжает работу в частично загруженном состоянии. Сообщение содержит команду для повторной попытки:

Failed to resume the conversation.
Run claude --resume <session-id> to retry, or claude to start a new session.

После показа сообщения 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, чтобы начать новую сессию

No conversation found with the session ID

Вы передали идентификатор сессии в claude --resume <session-id>, и ни один сохранённый транскрипт ему не соответствует:

No conversation found with session ID: <session-id>

После вывода сообщения Claude Code завершается с кодом 1. Claude Code ищет идентификатор сначала в текущем проекте, а затем во всех остальных проектах на этом компьютере. До v2.1.223 поиск ограничивался текущим каталогом проекта и его Git worktree, поэтому возобновляйте сессию из каталога, в котором она работала последней.

Распространённые причины:

  • Опечатка в идентификаторе: при неинтерактивном запуске идентификатор находится в поле session_id вывода --output-format json
  • Удалённый транскрипт: Claude Code удаляет транскрипты по истечении срока хранения, по умолчанию 30 дней, в соответствии с правилами автоматической очистки
  • Другой компьютер: Claude Code хранит транскрипты локально, поэтому возобновляйте сессию на том компьютере, где она выполнялась
  • Дублирующиеся копии: если вы скопировали каталог проекта внутри ~/.claude/projects и теперь два транскрипта имеют одинаковый идентификатор, Claude Code выводит это сообщение, а не возобновляет произвольно одну из копий

Что делать:

  • Для интерактивной сессии откройте средство выбора сессий командой claude --resume и нажмите Ctrl+A, чтобы расширить его на все проекты на этом компьютере, затем выберите сессию
  • Сессии, созданные с помощью claude -p или Agent SDK, не отображаются в средстве выбора, поэтому перепроверьте идентификатор по значению session_id, которое вывел исходный запуск

Windows reported an error (EBADF) when Claude Code read this session's transcript file

Вы возобновили сессию в Windows, её сохранённый файл транскрипта открылся нормально, но затем чтение завершилось системной ошибкой EBADF. Системная ошибка не объясняет, почему чтение не удалось, поэтому сообщение предлагает вероятные причины и варианты решения:

Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

Сообщение следует за строкой об ошибке самой команды, например 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.

Cannot switch renderers in this session

При переключении рендерера 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:

Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.

Каждая причина, которая может быть указана в скобках:

  • 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 добавило правила deny или ask с назначением session. Правила allow уровня сессии не вызывают отказ. При перезапуске они отбрасываются, и Claude Code снова запрашивает подтверждение
  • ask-before-running rules with no command-line form: обновление разрешений от хука или вызывающего кода SDK добавило правила ask вместе с правилами, которые Claude Code передаёт обратно как --allowed-tools и --disallowed-tools. Флага для правил ask не существует
  • permission rules a command line cannot carry intact и added directories a command line cannot carry intact: обновление разрешений добавило правило или путь к каталогу в ходе сессии. Командная строка перезапущенного процесса не может передать этот текст как то же самое значение

Что делать:

  • В сессии, запущенной без этих ограничений, выполните /tui fullscreen или /tui default, чтобы переключиться обратно. Claude Code сохранит там настройку tui

Couldn't open Claude Desktop

Вы выполнили /desktop или его псевдоним /app в сессии либо claude --desktop в оболочке, и системная команда, которую Claude Code использует для открытия Claude Desktop, завершилась с ошибкой. После /desktop сессия остаётся в терминале; claude --desktop выводит сообщение без префикса Error: и завершается с кодом 1.

Текст в скобках называет команду, завершившуюся с ошибкой, а также её код завершения и первую строку вывода ошибки, если они были. В macOS это команда open, как в этом примере; в Windows — rundll32:

Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.

Что делать:

  • Откройте 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 update your Zed keymap, so it was left unchanged.
To add the binding yourself, add this block to the keymap array in <path to keymap.json>:
{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }

Первая строка сообщения называет причину:

  • 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 usage reports are not available on this connection

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

Skill usage reports are not available on this connection.

Что делать:

  • Выполните /skill-doctor в терминале на компьютере, где работает сессия, или выполните там claude -p "/skill-doctor"

Custom output styles can't be selected over Remote Control

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

Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.

Что делать:

  • Выберите встроенный стиль, например /output-style concise
  • Чтобы использовать пользовательский стиль, задайте outputStyle в файле .claude/settings.local.json проекта или выполните /output-style <style> в собственном терминале сессии, если он есть

Output styles are saved to local settings which this session doesn't load

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

Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.

Что делать:

  • Добавьте local в источники настроек сессии и переключите стиль снова
  • Задайте ключ outputStyle в файле настроек, который сессия загружает, например в .claude/settings.json проекта или в ~/.claude/settings.json. В TypeScript SDK вместо этого задайте outputStyle внутри встроенного объекта settings; см. Активация стиля вывода

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

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

plugin eval is currently in early access

Вы запустили claude plugin eval или claude plugin eval init, и команда завершилась с кодом 1 с одним из этих сообщений перед выполнением каких-либо действий:

`plugin eval` is currently in early access
`plugin eval` is currently unavailable

Первое сообщение означает, что ваша сборка старше v2.1.269, первой версии, где команда общедоступна. Второе означает, что Anthropic отключила команду на стороне сервера; ничто на вашем компьютере не включит её обратно.

Что делать:

  • Запустите claude --version, затем claude update, и запустите команду снова в новом сеансе. См. требования для plugin evals
  • Если вы видите второе сообщение в текущей сборке, попробуйте снова позже после ещё одного claude update

Marketplace is registered from an untrusted source

Маркетплейс зарегистрирован под именем, которое зарезервировано для официальных маркетплейсов Anthropic, но его зарегистрированный источник не является репозиторием GitHub anthropics. Claude Code повторно проверяет зарезервированные имена каждый раз при загрузке или обновлении маркетплейса, поэтому маркетплейс и плагины, установленные из него, перестают загружаться. До версии v2.1.205 запись, зарегистрированная до того, как её имя было зарезервировано, продолжала загружаться.

Marketplace "claude-community" is registered from an untrusted source: The name 'claude-community' is reserved for official Anthropic marketplaces. Only repositories from 'github.com/anthropics/' can use this name. To fix it, remove the marketplace and re-add it from the official source.

Для маркетплейса, источник которого не является репозиторием GitHub или URL-адресом Git, например локальной директорией, среднее предложение читается как 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
  • Если вы публикуете сторонний маркетплейс, который использовал это имя до того, как оно было зарезервировано, переименуйте его и попросите пользователей добавить его снова из вашего источника
  • См. список зарезервированных имён в разделе Marketplace schema

Marketplace name is another spelling of a reserved name

Имя маркетплейса само по себе не является зарезервированным именем, но Claude Code рассматривает его как другое написание одного из них. Зарезервированные имена перечисляют, какие написания считаются зарезервированным именем. Claude Code отказывает такому имени при добавлении маркетплейса:

Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.

Когда маркетплейс уже зарегистрирован под таким именем, его запись перестаёт загружаться, и /plugin, claude plugin install и claude plugin update предупреждают:

known_marketplaces.json has an entry named "claude.code.plugins", another spelling of the reserved marketplace name "claude-code-plugins", so it is ignored. Remove it with: claude plugin marketplace remove claude.code.plugins

Когда имя требует кавычек оболочки, отказ во время добавления читается как 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 refuses the marketplace name

Имя зарегистрированного маркетплейса выдаёт себя за официальный маркетплейс Anthropic в соответствии с правилами, которые перечисляет этот раздел.

Если маркетплейс был зарегистрирован под таким именем до того, как проверка его заблокировала, маркетплейс и плагины, установленные из него, перестают загружаться, потому что Claude Code проверяет имя каждый раз при чтении каталога маркетплейса. Когда имя имитирует официальное, claude plugin list и вкладка Errors в /plugin сообщают о каждом затронутом плагине с сообщением, которое начинается с:

Claude Code refuses the marketplace name "anthropic-plugins-v2"

Для имитирующего имени ошибка самого маркетплейса читается как 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 сообщали о плагинах имитирующего имени как не загруженных, без указания имени маркетплейса как причины.

Что делать:

  • Запустите claude plugin marketplace remove <name>. Это также удаляет плагины, установленные из маркетплейса, и удаляет их сохранённые данные
  • Чтобы сохранить маркетплейс, дождитесь, пока его разработчик переименует его, затем запустите claude plugin marketplace update <name>
  • Если вы публикуете маркетплейс, переименуйте его в вашем marketplace.json; пользователи затем обновят маркетплейс вместо его удаления

Marketplace is already added from a different source

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

Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

Что делать:

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

Plugin command references user\_config in a shell command

Хук плагина, monitor, или команда MCP headersHelper ссылается на опцию ${user_config.KEY} плагина, и подставленная строка будет передана в оболочку. Настроенное значение, содержащее $(...), обратные кавычки или ;, будет выполнено как код там, поэтому Claude Code отказывается запускать компонент вместо подстановки значения. Проверка выполняется на шаблоне команды, поэтому ошибка появляется даже когда значение ещё не настроено. До версии v2.1.207 значение подставлялось в команду оболочки.

Формулировка зависит от того, какая поверхность ссылалась на опцию. Хук в форме оболочки сообщает:

Hook from plugin formatter@acme-tools references ${user_config.*} in a shell-form command. The substituted value would be re-parsed by the shell. Use exec form instead — {"command": "<executable>", "args": ["${user_config.KEY}", ...]} — or read $CLAUDE_PLUGIN_OPTION_<KEY> from the hook's environment. Command: ./scripts/notify.sh ${user_config.webhook_url}

Monitor сообщает:

Monitor "deploy-status" from plugin deploy-tools references ${user_config.*} in its command. The substituted value would be passed to a shell. Monitor commands cannot safely reference ${user_config.*}; have the monitor script read the value from a config file or prompt instead.

MCP headersHelper сообщает:

headersHelper for MCP server 'internal-api' references ${user_config.*}. The substituted value would be passed to a shell; read the value inside the helper script instead (e.g. from an env var set in the server's "env" block).

Что делать:

  • Для хука добавьте массив args, чтобы он выполнялся в exec форме, где каждый ${user_config.KEY} становится одним аргументом без оболочки между ними. Или удалите ссылку и прочитайте переменную окружения $CLAUDE_PLUGIN_OPTION_<KEY> внутри скрипта
  • Для monitor удалите ссылку и пусть скрипт monitor прочитает значение из файла конфигурации
  • Для headersHelper переместите ${user_config.KEY} в поле headers сервера, которое не анализируется оболочкой, или прочитайте значение внутри скрипта помощника

Plugin archive integrity check failed

Запись маркетплейса плагина использует источник archive с закреплением sha256, и дайджест загруженного файла не совпадает с закреплением. Claude Code отказывает в установке, поэтому ничего не меняется в кэше плагинов. Несовпадение имеет три возможные причины:

  • Файл по URL-адресу изменился после того, как автор вычислил закрепление
  • Автор ввёл неправильный дайджест в запись маркетплейса
  • URL-адрес служит другим файлом, чем тот, который автор закрепил
Plugin archive integrity check failed for https://artifacts.example.com/claude-plugins/my-plugin.zip: expected sha256 6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1, got ac52220c0914ef8ca6a602e4a7362f88d30fb021110f72a6d15b68c3fe7df2b7. The archive was not installed. Verify the sha256 in the marketplace entry, or that the URL serves the intended file.

Что делать:

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

Path escapes plugin directory

Путь компонента плагина, объявленный в plugin.json плагина или в его записи маркетплейса, разрешается вне собственной директории плагина. Claude Code отбрасывает этот путь и загружает остальную часть плагина. Имя компонента в сообщении, такое как commands или hooks, называет поле, которое объявило путь.

commands path escapes plugin directory: ./../shared.md

В выводе команды claude plugin та же ошибка читается как Path escapes plugin directory: ./../shared.md (commands).

Claude Code отклоняет как путь, который указывает вне плагина в том виде, в котором он написан, например ../shared-utils, так и символическую ссылку, которая ведёт вне плагина и не является одной из правил символических ссылок маркетплейса, которые разрешены. Для символической ссылки сообщение также указывает, где разрешается путь:

commands path escapes plugin directory: ./commands/deploy.md — it resolves to /home/user/shared/deploy.md, outside the plugin directory

На macOS и Linux Claude Code также отклоняет путь компонента, который содержит обратную косую черту где-либо в нём, даже когда путь остаётся внутри плагина. Плагин, чьи пути компонентов используют разделители в стиле Windows, загружается на Windows и вызывает это отклонение на других платформах:

commands path escapes plugin directory: ./commands\deploy.md — its path contains a backslash, which is not resolved reliably on this platform

До версии v2.1.251 Claude Code загружала путь commands, объявленный в записи маркетплейса, даже когда он указывал вне директории плагина.

До версии v2.1.257 проверка смотрела только на написание пути, а не на то, где ведёт символическая ссылка.

Что делать:

  • Переместите упомянутый файл внутри директории плагина и укажите на него с помощью относительного пути ./
  • Если путь является символической ссылкой на файл вне плагина, замените символическую ссылку копией файла
  • Если сообщение говорит, что путь содержит обратную косую черту, напишите путь с прямыми косыми чертами, например ./commands/deploy.md
  • Для совместного использования файлов с другими плагинами в одном маркетплейсе свяжите их с помощью символической ссылки внутри директории плагина, следуя правилам символических ссылок

Path could not be checked

Claude Code попросила операционную систему проверить, существует ли путь плагина, и получила ошибку, отличную от «не найдено», поэтому она не загружает то, что называет путь. Сколько плагина загружается, зависит от того, какой путь не удался:

Вы не видите эту ошибку для пути, который вообще не существует. В /plugin ошибка появляется под плагином и называет путь и код, который вернула операционная система:

skills path could not be checked: /home/user/my-plugin/skills (ELOOP)

В 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 рассматривала папку компонента по умолчанию, которую она не могла проверить, как отсутствующую и загружала плагин без этого компонента, без ошибки.

Marketplace entry path does not stay inside the marketplace directory

Запись маркетплейса плагина объявляет путь источника, который Claude Code не может разрешить в расположение внутри собственной директории маркетплейса, поэтому плагин не устанавливается и не загружается. Отказ охватывает:

  • Путь записи, который является абсолютным, поднимается из маркетплейса с помощью .., или написан как сетевой путь
  • На macOS и Linux путь записи, который содержит обратную косую черту где-либо после начального ./
  • Запись в маркетплейсе, полученном из удалённого источника, такого как git или URL, которая достигает своей цели через символическую ссылку, разрешающуюся вне директории маркетплейса
  • Относительная запись в маркетплейсе, добавленном из прямого URL-адреса его marketplace.json: Claude Code загружает только этот файл, поэтому локальные файлы плагинов не существуют для пути, чтобы назвать. См. Plugins with relative paths fail in URL-based marketplaces

claude plugin install сообщает об отказе следующим образом:

Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory)

Когда запись уже установленного плагина не проходит ту же проверку, claude plugin list показывает плагин как failed to load с:

Plugin source path refused: ./my-plugin does not stay inside its marketplace directory. Check that the marketplace entry has a plain relative path.

Что делать:

  • Если вы поддерживаете маркетплейс, напишите 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 сообщает:

✘ Failed to install plugin "my-plugin": Failed to load marketplace configuration: JSON Parse error: Unexpected EOF

До версии v2.1.246 claude plugin install не сообщала об этой ошибке.

Что делать:

  • Откройте ~/.claude/plugins/known_marketplaces.json и исправьте JSON, или исправьте записи, которые сообщение называет как не соответствующие схеме реестра
  • Если вы не можете исправить это, удалите файл или замените его содержимое на {}, затем добавьте каждый маркетплейс снова с помощью claude plugin marketplace add <source>. Claude Code повторно регистрирует маркетплейсы, которые ваш пользователь или управляемые параметры объявляют в extraKnownMarketplaces, в следующий раз, когда вы запустите его в папке, которую вы доверили.

Plugin is required by your organization

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

Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

Claude Code ничего не сохраняет и плагин остаётся включённым.

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

Что делать:

  • Попросите администратора вашей организации claude.ai изменить статус обязательности плагина на claude.ai

Plugin was not uninstalled

Вы запустили claude plugin uninstall, или выбрали Uninstall на вкладке /plugin Installed, и удаление остановилось с сообщением, начинающимся с "<plugin>" was not uninstalled:. Если текст после этого двоеточия начинается с installed_plugins.json вместо названия файла параметров, причина заключается в содержимом installed_plugins.json, которое эта версия Claude Code не может прочитать. Для этой формы см. installed_plugins.json holds a record this version can't read.

Когда Claude Code удалила запись плагина из enabledPlugins и прочитала файлы параметров этой области обратно, либо плагин всё ещё был включён там, либо файл, который мог бы его включить, не мог быть прочитан или проверен. Удаление сохранённых опций, секретов и данных плагина, пока запись параметров могла бы его включить обратно, привело бы к их потере, поэтому удаление останавливается вместо этого: плагин остаётся установленным и ничто, что он сохранил, не удаляется.

✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.

Середина сообщения называет файл и причину:

  • 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 самостоятельно исправляет большинство ошибок инструментов. Когда требуется изменение с вашей стороны, список Что делать для этой ошибки указывает, что нужно изменить.

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__* без подключённого сервера GitHub MCP или Agent для подагента на пределе глубины.

Пропуск поля tools никогда не вызывает этот отказ. Если вы оставляете список tools пустым или disallowedTools удаляет каждую запись в нём, Claude Code также пропускает отказ и запускает подагента без инструментов.

До версии 2.1.208 подагент запускался без инструментов и мог вернуть пустой или запутанный результат.

Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.

Что делать:

  • Исправьте каждую запись, которую называет ошибка, в соответствии с инструментами, доступными подагентам
  • Удалите записи для инструментов, которые сеанс не имеет, например инструменты 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 блокировало редактирование.

File is covered by a Read deny rule in your permission settings and cannot be edited.

Когда Claude Code отказывает инструменту Write, сообщение заканчивается на and cannot be written вместо этого.

Что делать:

  • Если Claude должен иметь возможность изменять файл, удалите или сузьте правило отказа Read в /permissions или в параметрах
  • Если файл должен остаться нетронутым, сохраните правило и добавьте правило отказа Edit для того же пути, чтобы также заблокировать инструмент NotebookEdit

Path cannot contain null bytes

Аргумент пути или шаблона вызова инструмента файла содержал нулевой байт, который файловые системы и инструменты поиска не могут принять. Read, Write, Edit, NotebookEdit, Glob и Grep проверяют это, и сообщение называет инструмент и аргумент:

Read file_path cannot contain null bytes (\0). Remove the null byte and try again.

Вызов инструмента не удаётся, Claude видит ошибку, и ход продолжается.

Что делать:

  • Ничего с вашей стороны: ошибка возвращается Claude как результат инструмента, и само сообщение говорит Claude удалить нулевой байт и повторить попытку

До версии 2.1.281 нулевой байт в пути Read, Write, Edit или NotebookEdit завершал весь ход с ошибкой, называющей Path contains null bytes, и инструмент никогда не запускался.

subagent\_type is required

subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...

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 индекс, превышающий лимит, молча усекался при следующей загрузке без сигнала во время записи.

Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.

Только содержимое, которое загружается, учитывается в пределах. 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 в середине хода.

pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.

Отказ появляется в результате инструмента 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 повторить попытку:

Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.

Структурированные сообщения протокола команды агентов терпят неудачу таким же образом, и ошибка называет недоставленное сообщение: когда 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 вернул его без повторного применения определения подагента, из которого он был порождён, потому что его файл определения поступил из папки без сохранённого доверия. Уведомление следует за отчётом о возобновлении в результате инструмента отправляющего агента:

Its agent definition was not restored: the folder its definition file came from is not trusted (source: projectSettings), so the teammate is running with the team-essential tools and no custom instructions. To restore it, the user needs to run Claude Code in that folder once and accept the trust dialog (the --debug log names the folder); do not change trust settings on the user's behalf.

Проверка применяется к определению в каталоге .claude/agents/ проекта или каталога --add-dir, и принятие диалога доверия для родительской папки не удовлетворяет это.

Что делать:

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

Message too large for cross-session delivery

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

Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.

Повторная отправка того же текста терпит неудачу таким же образом.

Что делать:

  • Попросите Claude резюмировать сообщение или поместить объёмное содержимое в файл и отправить путь файла
  • Попросите Claude разделить содержимое на несколько более коротких сообщений

До версии 2.1.235 Claude Code сообщал об увеличенном сообщении как отправленном. Получающий сеанс отбросил его непрочитанным.

Too many messages to this session just now

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

Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.

Что делать:

  • Обычно ничего: Claude объединяет оставшееся содержимое в одно сообщение или ждёт перед отправкой большего
  • Если вы сами вызвали всплеск, попросите Claude объединить то, что осталось, в одно сообщение

До версии 2.1.236 Claude Code сообщал об этих отправках как отправленных. Получающий сеанс отбросил их непрочитанными.

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

Claude отправил кросс-сеансовое сообщение другому вашему сеансу на этой машине, и входящие сообщения этого сеанса отбросили его перед тем, как Claude в этом сеансе прочитал его. Строка называет адрес получателя и, когда получатель дал причину, добавляет причину после дефиса:

Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.

Одна строка может охватывать несколько отброшенных сообщений. Затем она начинается во множественном числе, например 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, отказ появляется в результате инструмента отправляющего сеанса:

Failed to send to api-worker: Refusing to send: reply target is a symlink

Текст после 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 отказывает в операции вместо того, чтобы следовать ей. Отказ появляется в результате инструмента:

Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.

Каждый отказ называет его причину:

  • 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:

task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.

Текст в скобках называет проверку, которая не удалась. Причины, такие как output symlink was re-pointed, output file identity changed и not a regular file, все сообщают об одном и том же условии: что-то на пути вывода или вдоль него больше не является файлом, который создал Claude Code. Только некоторые причины несут предложение To recover:.

Если проверка не удаётся, пока команда всё ещё выполняется, Claude Code останавливает команду, и её результат сообщает:

Command killed: its output file was replaced or could no longer be verified

Что делать:

  • Обновитесь до версии 2.1.260 или позже. Более ранние версии иногда показывали это сообщение, когда ссылка или перемещённый каталог не были присутствуют
  • Перезагрузите Claude Code с CLAUDE_CODE_TMPDIR, установленным в свежий каталог
  • Или проверьте каталог вашего проекта в временном каталоге Claude Code, /private/tmp/claude-501/-Users-you-my-project в примере сообщения. Если этот путь является символической ссылкой или каталогом, который не должен быть там, удалите саму ссылку или каталог, а не цель ссылки, и перезагрузитесь
  • Если отказ повторяется, процесс заменяет, связывает или удаляет записи в временном каталоге Claude Code, пока сеанс работает. Установите CLAUDE_CODE_TMPDIR в каталог, который ничто другое не управляет, и перезагрузитесь

Disk quota or temp filesystem is full

Claude Code сохраняет вывод каждой команды Bash и PowerShell в файл в своём временном каталоге. Когда команда завершается с ненулевым кодом и вообще без вывода, Claude Code проверяет, заполнена ли файловая система, содержащая этот файл, или нет места для индексных дескрипторов, или ваша квота диска на ней использована. Если это так, диагностика появляется в результате команды вместо пустого вывода:

Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.

Сообщение называет то, что закончилось:

  • 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 запустить команду снова. Вывод, который она напечатала, был потерян, а не усечён

The source file is not valid UTF-8 text

Claude попытался опубликовать артефакт из файла, чьи байты не декодируются как текст, или чей текст уже содержит символ замены U+FFFD, поэтому Claude Code отказал в публикации перед загрузкой чего-либо. Сообщение появляется в результате инструмента Artifact и называет первую позицию для исправления:

file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.

file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.

Claude Code декодирует файл как UTF-8 или как UTF-16, когда он начинается с метки порядка байтов UTF-16 с прямым порядком байтов. Когда такой файл UTF-16 не декодируется, первое сообщение называет UTF-16 и по-прежнему говорит вам переписать файл как UTF-8. Когда после названной позиции следуют дополнительные позиции, сообщение добавляет счётчик, такой как (+2 more), после позиции.

Что делать:

  • Обычно ничего: Claude переписывает файл и публикует снова
  • Если файл — это тот, который вы написали или экспортировали, сохраните его снова как UTF-8 и замените каждый U+FFFD на символ, который более ранний редактор, вставка или преобразование потеряло
  • Чтобы показать намеренный U+FFFD на странице, напишите его как &#xFFFD; в HTML вместо буквального символа

До версии 2.1.267 Claude Code загружал такой файл без проверки, и сервер отказывал в публикации вместо этого.

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

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

Отказ появляется в результате инструмента Artifact; когда файл не смог быть проверен вообще, он называет эту ошибку вместо этого:

Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.

cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.

Что делать:

  • Обычно ничего: сообщение говорит Claude использовать простой файл внутри подключённых папок вместо этого
  • Чтобы поместить этот точный файл в артефакт, скопируйте его в одну из подключённых папок сеанса как обычный файл, а не символическую ссылку, и попросите снова

WebFetch cannot fetch localhost

Claude вызвал WebFetch с URL-адресом, чьё имя хоста не содержит точку, например http://localhost:3000 или простое имя интранета, например http://wiki/. WebFetch отказывает в этих URL-адресах перед выполнением любого запроса:

WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead.

Что делать:

  • Обычно ничего: сообщение указывает Claude на curl через инструмент Bash, который может достичь локальных и интранет-серверов

До версии 2.1.268 WebFetch сообщал об этих URL-адресах с общей ошибкой Invalid URL.

WebFetch domain safety check failed

Перед загрузкой URL-адреса WebFetch отправляет имя хоста URL-адреса на api.anthropic.com для проверки его против списка блокировки безопасности доменов Anthropic. Если проверка не может быть завершена, WebFetch не может подтвердить, что домен безопасен, поэтому он не загружает страницу и результат инструмента содержит одно из этих сообщений вместо этого:

The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.

Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.
  • 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 сообщает:

Can't open MCP settings while no terminal is attached to this background session. This session now shows "needs input" in agent view — open it and run /mcp to manage servers, or use `/mcp enable|disable|reconnect <server>` to steer without the panel.

Что делать:

  • Подключитесь к сессии из представления агента и запустите команду снова
  • Или используйте форму, указанную в сообщении, например /mcp reconnect <server>, /mcp enable или /mcp disable, которые работают без подключения

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

Claude обратился к файлу или рабочему каталогу через написание пути, которое защита изоляции в worktree не может разрешить в одно проверяемое расположение. Защита проверяет операции записи и рабочие каталоги команд в любой сессии, изолированной в worktree, интерактивной или фоновой, а также в субагентах, изолированных в worktree. Она разрешает символические ссылки, прежде чем проверить, что операция не затрагивает общую рабочую копию, а если разрешение не удаётся, блокирует операцию, а не позволяет ей туда попасть. Сообщение называет отклоняемые формы пути и способ повторить попытку:

This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.

Заблокированная команда сообщает ту же причину для своего рабочего каталога, и сообщение заканчивается на 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 не снимает блокировку. Сообщение называет форму пути, которую следует использовать вместо этого:

This write was blocked because the path is network-shaped (a UNC share or /net automount spelling) while this session's checkout is local. Isolating cannot unblock it. If the file is genuinely inside the worktree /path/to/worktree, address it by its local, plainly-spelled path instead.

Заблокированная команда сообщает ту же причину для своего рабочего каталога, и сообщение заканчивается на re-run the command from its local, plainly-spelled path. До версии 2.1.217 защита сравнивала только текст пути, поэтому обращение к файлу внутри рабочей копии через путь UNC или /net не блокировалось.

Что делать:

  • Обычно ничего: Claude повторяет попытку с локальным написанием пути, которое запрашивает сообщение

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

Claude запустил команду Bash или Monitor в сессии, изолированной в worktree, и Claude Code отклонил её по одной из двух причин:

  • Команда направляет git на основную рабочую копию.
  • Claude Code не может проверить по тексту команды, что любой запускаемый ею git остаётся внутри worktree. Команда, в которой git вообще не упоминается, тоже может быть отклонена по этой причине, потому что раскрытие косвенной ссылки на переменную, например ${!name}, или выполнение подстановки функции Bash, например ${ command; }, порождает во время выполнения значение, которое само может быть командой.

Средняя часть сообщения называет то, что не удалось проверить:

This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.

Что делать:

  • Обычно ничего: Claude читает сообщение и переписывает команду так, как просит последнее предложение
  • Если запрошенная вами команда продолжает отклоняться, запишите отмеченное значение буквально: замените косвенную ссылку или подстановку её значением и запустите git отдельной простой командой изнутри worktree
  • Чтобы намеренно выполнить действие в основной рабочей копии, запустите команду самостоятельно в терминале вне сессии

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

Вы подключились к остановленной фоновой сессии, которая была переведена в фон из другого диалога с помощью ← или /background и остановлена до завершения первого ответа. Пока первый ответ не завершён, диалог существует только в сессии, из которой он был переведён в фон, поэтому claude attach отказывается запускать остановленную сессию, а не начинает пустой диалог под тем же ID сессии. Сообщение заканчивается командой claude respawn для этой сессии:

This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.

При открытии строки той же сессии в представлении агента вместо этого под списком показывается Press enter again to restart this session fresh, и повторное нажатие Enter на строке перезапускает сессию с пустым диалогом. До версии 2.1.212 при открытии строки показывалось сообщение об отказе без возможности перезапуска из представления агента. До версии 2.1.211 открытие остановленной сессии молча запускало пустой диалог и могло повторно выполнить исходный промпт сессии.

Что делать:

  • Диалог, из которого вы перевели сессию в фон, не пострадал: возобновите его с помощью claude --resume или продолжайте работать в нём
  • Чтобы всё же запустить остановленную сессию заново, выполните claude respawn <id> с ID из сообщения или дважды нажмите Enter на её строке в представлении агента
  • Если сессия завершила ответ, а вы всё равно видите этот отказ в версии до 2.1.214, нечитаемая папка в ~/.claude/projects могла привести к тому, что при сканировании транскриптов сохранённый диалог был пропущен; обновитесь до версии 2.1.214 или новее, которая допускает нечитаемые папки при сканировании

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

Вы открыли строку остановленной сессии в представлении агента, а её сохранённый диалог уже открыт в другом работающем процессе Claude Code на этом компьютере, поэтому Claude Code отказывается запускать второй процесс, который записывал бы в тот же транскрипт. Какое сообщение вы увидите, зависит от того, что удерживает диалог:

Can't open — this session is running in another terminal
This conversation is already open in another running Claude session — use that one, or close it and try again
  • running in another terminal: диалог удерживает терминал, например тот, в котором вы возобновили его с помощью claude --resume или /resume. В строке также показывается Open in a terminal.
  • already open in another running Claude session: его удерживает другой неинтерактивный процесс Claude Code, например процесс фоновой сессии для того же диалога, который ещё не завершился.

Claude Code сохраняет ответ, который вы ввели при открытии строки, и отправляет его как следующий промпт сессии при её следующем запуске.

Что делать:

  • Продолжите диалог в процессе, в котором он открыт, или завершите этот процесс и снова откройте строку

До версии 2.1.248 существовал только отказ already open in another running Claude session: диалог, возобновлённый в терминале, не считался открытым, и при открытии строки запускался второй процесс Claude Code, записывающий в тот же диалог.

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

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

This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.

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 называет ветку и неотправленные коммиты и сообщает, как действовать дальше:

kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”
  2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.
  push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

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

terminal host process died — press Enter to restart

Из оболочки claude attach <id> перезапускает сессию, уже помеченную как сбойную из-за завершившегося хоста, а в противном случае выводит причину и завершается:

Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run `claude attach <id>` again to restart it on a fresh host.

Диалог в любом случае сохраняется.

Строка, в которой вместо этого выполняется 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 предлагает перезапуск в нижней строке:

Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).

Из оболочки claude attach <id> выводит причину и завершается:

Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).

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 оставляет сессию остановленной:

Session <id> was stopped while the respawn was in flight

При открытии только что запущенной сессии, процесс которой ещё стартует, Claude Code вместо этого ожидает процесс. До версии 2.1.246 открытие сессии в этот момент могло остановить её и вывести это сообщение.

Что делать:

  • Если вы не останавливали сессию, снова откройте её строку в представлении агента или выполните claude respawn <id>, чтобы перезапустить её
  • Если вы остановили её сами, ничего делать не нужно: сессия остаётся остановленной

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

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

This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.

Предупреждение называет только те каталоги, в которых искал 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, примите диалоговое окно доверия, затем снова возобновите сессию

Ошибки средства запуска CLAUDE\_CODE\_PROCESS\_WRAPPER

Переменная CLAUDE_CODE_PROCESS_WRAPPER задана, но её значение нельзя использовать, поэтому Claude Code отказывается запускать затронутый процесс, а не запускает его без средства запуска. О проблемах конфигурации сообщается сообщением, которое начинается с имени переменной и указывает причину, например:

CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file

Если средство запуска стартует, но завершается, не заменив себя на 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:

Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'

В некоторых учётных записях в сообщении вместо 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 заменял двоичный файл, независимо от того, запустили ли его вы или автообновление. Ошибка появляется, когда вы открываете сессию из представления агента:

Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'

Когда вы запускаете сессию с помощью /background или claude --bg, та же причина появляется внутри Couldn't reach the background service (...). В тот же период переустановки ошибка может называть другой код, например ENOENT или ENOEXEC, либо EUNKNOWN или EPERM в Windows; у ошибки EUNKNOWN, которая сохраняется при повторных попытках, другая причина.

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

Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes

До версии 2.1.257 ожидание во всех случаях прекращалось через десять секунд, поэтому эта ошибка появлялась, пока другой процесс Claude Code ещё загружал обновление. До версии 2.1.246 Claude Code сразу завершался сбоем без ожидания.

Что делать:

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

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

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

Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'

Когда вы открываете сессию из представления агента, та же причина следует за 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 не запускает сессию, а сообщение называет отсутствующий каталог:

Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)

До версии 2.1.257 сессия как будто запускалась, а затем отображалась в представлении агента как сбойная строка с той же причиной.

До версии 2.1.281 это сообщение появлялось и в том случае, когда каталог был удалён ещё до запуска сессии. В этом случае выводится could not be resolved on disk.

Что делать:

  • Создайте заново каталог, указанный в сообщении, или запустите сессию из существующего каталога, затем повторите попытку

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

Вы запустили или перезапустили фоновую сессию в каталоге, которому вы не доверяете, и диалоговое окно доверия рабочему пространству не смогло появиться, чтобы спросить вас. Claude Code не запускает сессию:

Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.

Если выполнить ту же команду из терминала в собственном каталоге сессии, вместо этого появится диалоговое окно доверия, и сессия запустится после того, как вы его примете. Это сообщение появляется там, где диалоговое окно показать нельзя, например в скрипте или при перезапуске сессии из каталога, отличного от её собственного.

Два варианта указывают на другую причину:

  • 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 завершился с ненулевым кодом. Сам код выхода не говорит, что не удалось: реальная ошибка находится в собственном выводе процесса, который обёртка добавляет, если она что-то захватила, в противном случае она хранит это в своих логах.

Error: Claude Code process exited with code 1

На 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.

Failed to run Claude Code: Error: Could not locate the Claude CLI on PATH. Launching by name in a PowerShell terminal would run a 'claude' from the open folder instead of the installed CLI, so the launch was blocked. Make sure the Claude CLI's install directory is on your system PATH (not only your PowerShell profile), then restart VS Code and try again. VS Code reads PATH when it starts, so PATH changes take effect only after a restart.

Что делать:

  • Откройте новое окно 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, и соединение завершилось без ошибки до того, как процесс подтвердил или завершил его. Расширение не может определить, было ли сообщение обработано, поэтому оно просит вас отправить его снова:

The connection to Claude Code ended before this message completed — it may not have been processed, so please send it again.

Что делать:

  • Отправьте сообщение снова. Следующее сообщение запускает свежий процесс 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 записывал и удалял данные через ссылки на отслеживаемых путях и не сообщал о частичном восстановлении.

Restored the code, but skipped 2 files: the tracked path is (or became) a link or other non-regular file, its directory changed since the checkpoint, or its backup could not be safely read. Skipped files were left untouched — run with --debug for the paths.

Что делать:

  • Определите, какие файлы были пропущены, чтобы вы могли обработать каждый из них, следуя приведённым ниже шагам. Сообщение содержит только количество; журнал отладки в ~/.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 не смог записать или удалить файл.

Failed to restore the code:
No files were restored: 1 file failed (backup missing, or the file could not be updated)

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 сохраняет транскрипт на диск по мере работы, и его записи в файл транскрипта не удаются. Сообщение указывает причину с кодом базовой ошибки, например полный диск:

Transcript writes are failing (disk full — ENOSPC) · recent messages may not be saved for resume

Предупреждение появляется в разных точках в зависимости от ошибки:

  • При первом сбое для условий, которые не исчезают сами по себе: полный диск, превышена квота диска, файловая система только для чтения, путь превышает лимит длины файловой системы, или на 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 не записывает для него транскрипт или историю подсказок:

Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set · --resume will not find this session; if unintended, unset it and restart

Переменная является преднамеренным отказом для эфемерных скриптовых сеансов, но она также может достичь сеанса через профиль оболочки, скрипт-обёртку или родительский процесс, который её экспортировал.

Что делать:

  • Если вы установили переменную намеренно, никаких действий не требуется; уведомление подтверждает, что сеанс не будет отображаться в --resume, --continue или истории стрелки вверх
  • Если нет, удалите переменную из оболочки или скрипта, который запускает claude, затем начните новый сеанс. Сообщения из текущего сеанса не сохраняются задним числом.

Сохранение транскрипта отключено из-за унаследованного маркера CLAUDE\_CODE\_CHILD\_SESSION

Claude Code устанавливает CLAUDE_CODE_CHILD_SESSION в подпроцессах, которые он порождает, и рассматривает интерактивный сеанс, который его наследует, как вложенный: Claude Code не сохраняет для него транскрипт, поэтому сеансы, которые сам Claude запускает, не заполняют ваш список --resume. Это уведомление означает, что ваш текущий сеанс унаследовал маркер:

Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker · restart with CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1 to keep future transcripts

Уведомление ожидается, когда вы запустили 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 exited after an unrecoverable interface error (<error>). It happened while the fullscreen renderer was starting, so the next launch will use the classic renderer (CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1 forces that any time).

Что делать:

  • Запустите 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 загружает каждого агента независимо от того, превышен ли лимит, поэтому предупреждение не меняет то, что загружается.

Agent descriptions are over the 15.0k-token limit (~16.2k tokens) · ask Claude to trim agent descriptions in .claude/agents/

Что делать:

  • Сократите frontmatter description ваших файлов агентов или попросите Claude сократить их для вас.
  • Удалите файлы агентов, которые вы больше не используете.

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:

Not loaded: rename .claude/skills/anthropic-skills, then restart — its name uses "anthropic-skills", a name reserved for the skills synced from your claude.ai account

Уведомление называет то, что нужно изменить для первого отклонённого элемента: папку или файл для переименования, строку name: для редактирования или workflow для переименования. Когда было отклонено более одного элемента, уведомление заканчивается счётом, например · 2 more, и debug log называет каждый.

Что делать:

  • Переименуйте элемент, который называет уведомление, или отредактируйте строку name:, на которую оно указывает, затем перезагрузите сеанс.

До версии 2.1.282 Claude Code загружал skills и commands с этими именами.

Workspace has not been trusted

Claude Code обнаружил правила permissions.allow или записи permissions.additionalDirectories в файле .claude/settings.json или .claude/settings.local.json проекта и не применил их, потому что правила allow из параметров проекта требуют доверия рабочей области. Количество, имя параметра и имя файла в сообщении варьируются в зависимости от вашей конфигурации. На правила deny и ask это не влияет.

Ignoring 2 permissions.allow entries from .claude/settings.local.json: this workspace has not been trusted. Run Claude Code interactively here once and accept the trust dialog, or set projects["/Users/you/project"].hasTrustDialogAccepted: true in /Users/you/.claude.json.

Что делать:

  • Выполните 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 запускается без этого каталога.

\\server\share is a network path, which cannot be added as a working directory. On Windows, map the share to a drive letter and pass it at launch with --add-dir (a drive letter added mid-session does not yet carry remote-read trust).

Пути, которые Claude Code отказывает таким образом, включают:

  • UNC shares такие как \\server\share
  • Automount paths такие как /net/<host>, если вы не запустили Claude Code из каталога под 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 выходит без их применения:

Managed settings were not approved; exiting without applying them.

Что делать:

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

Managed settings block the default model

managed settings вашей организации блокируют модель, на которую разрешается Default option, и каждую модель, на которую она может перейти. Сеанс, который должен был бы запуститься на Default option, выходит при запуске вместо запуска заблокированной модели. Какое сообщение вы видите, зависит от параметра, который её блокирует. Когда список deniedModels блокирует её, сообщение читается:

Claude Code can't start: your organization's managed settings block the default model (claude-opus-5-5) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

Когда список availableModels с availableModelsMatch установленным на "exact" его опускает, сообщение читается:

Claude Code can't start: your organization allows only the models listed in "availableModels", and none of them can be used as the default model (claude-opus-5-5 isn't listed). Ask your administrator to update "availableModels".

Что делать:

  • Если вы администрируете параметры, добавьте модель, которую ваши пользователи могут запустить, в 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. Сообщение начинается с разрешённых поставщиков:

Your organization's managed settings allow Claude Code to use: Anthropic API, Amazon Bedrock.

Когда список пуст, сообщение читается вместо этого:

Your organization's managed settings allow Claude Code to use no API provider at all (allowedProviders is an empty list), so it cannot start on this machine.

Когда каждая запись не распознана, скобка читается (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 отказывает в подключении и показывает:

MCP server <name> is blocked by enterprise managed policy

Любой из этих параметров может создать сообщение:

  • Запись 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 при запуске вместо запуска без политики, которую несёт документ. Строка называет неудачный источник перед сообщением:

/Library/Application Support/ClaudeCode/managed-settings.json: Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.

Источник является одним из:

  • Путь файла 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 выходит при запуске, а не запускается без политики, которую может нести источник:

Unable to read managed policy settings.
This machine may require organization login enforcement, but the policy file failed to load.
Contact your administrator.

Detail: <source>: <reason>

В том же состоянии потоки входа, запросы API из уже работающего сеанса и сервер claude gateway отказываются с вариантом первой строки, которая называет allowedProviders.

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

Что делать:

  • Если вы администрируете машину, исправьте проблему, которую называет строка Detail:, чтобы развёрнутый источник мог быть прочитан, или удалите источник
  • Если нет, отправьте сообщение вашему администратору. Ничто в ваших собственных файлах параметров не вызывает и не очищает эту ошибку

До версии 2.1.285 только сеансы, вошедшие с учётными данными claude.ai или Claude Console, выходили с этим сообщением, и чтение, которое операционная система отклонила, также создавало его.

otelHeadersHelper failed

Claude Code показывает это предупреждение как уведомление в интерфейсе терминала, один раз за интерактивный сеанс, когда скрипт otelHeadersHelper не удаётся или выводит результат, который не соответствует требованиям скрипта.

Пока скрипт продолжает не удаваться, экспорты не удаются и ваш backend телеметрии не получает ничего из сеанса.

Текст после See /status: говорит, что не удалось, например код выхода скрипта, за которым следует его вывод ошибки:

otelHeadersHelper failed; telemetry is not being exported. See /status: exited 1: token service unreachable

Что делать:

  • Выполните /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 только, один раз на сервер. В интерактивном сеансе он записывает тот же отказ в журнал отладки вместо этого.

MCP server 'internal-api': headersHelper not run — this workspace has no persisted trust; accept the trust dialog here once interactively, or set projects["/Users/you/project"].hasTrustDialogAccepted in /Users/you/.claude.json.

Ключ 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:

Invalid permission rule "Bash(ls) x" was skipped: Malformed Tool(content) rule. Rules take the form Tool or Tool(content) and must end at the closing ")"; parentheses inside the content are literal

Что делать:

  • В файле параметров, указанном в сообщении, переписать правило так, чтобы оно заканчивалось на закрывающей скобке, например 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, поэтому он никогда не консультирует правило пути, которое называет один из других инструментов файлов. Он сохраняет правило и ничего больше не меняет; предупреждение называет правило, его источник в скобках и замену для записи:

Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by file permission checks — only Edit(path) rules are. Use Edit(docs/**) instead (Edit rules cover all file-editing tools).

Что делать:

  • Замените 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 сохраняет правило и ничего не меняет о том, как оно соответствует; предупреждение называет правило и его источник в скобках:

Permission allow rule (.claude/settings.json): Bash(git -C * status *) has a wildcard before the rest of the command, so it also matches any options inserted at that position and approves them without a prompt. For git, options such as -c and --exec-path can run arbitrary commands. Replace that * with the exact value you mean, or only use * after the subcommand (for example Bash(git status *)).

Что делать:

  • Замените * перед подкомандой на точное значение, которое вы имеете в виду: 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 принимал эти правила без предупреждения.

crossSessionInbound must be one of accept, hold, refuse

Файл параметров устанавливает crossSessionInbound на значение, которое Claude Code не распознаёт, например опечатка "reject". Второе предложение предупреждения зависит от того, какой файл содержит значение; в пользовательском, проектном, локальном или файле --settings оно читается:

"crossSessionInbound" must be one of "accept", "hold", "refuse"; received "reject". This value was ignored; while it is present, cross-session messages are held for your approval instead of being delivered. Set it to one of the values above.

В managed settings Claude Code рассматривает нераспознанное значение как refuse, наиболее ограничивающее значение, и предупреждение говорит, что сообщения между сеансами отклоняются до тех пор, пока администратор не исправит это. Для того, как hold объединяется со значениями в ваших других файлах параметров, см. crossSessionInbound.

Что делать:

  • Установите ключ на "accept", "hold" или "refuse" или удалите его
  • Когда предупреждение называет управляемые параметры, попросите администратора исправить значение

До версии 2.1.248 Claude Code игнорировал нераспознанное значение без предупреждения.

The 200K limit isn't enforced

Вы установили CLAUDE_CODE_DISABLE_1M_CONTEXT=1, что обычно заставляет auto-compaction держать сеансы на 1M-context моделях в окне 200K, но нет порога compaction, который ограничивает этот сеанс на или ниже 200K, поэтому беседа может расти за его пределы.

CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced for <model>, so this session can grow past it. To enforce it, set CLAUDE_CODE_AUTO_COMPACT_WINDOW=200000 (or the autoCompactWindow setting).

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, как вы его настроили, и не выходит и не переключает модели.

[claude-code:unrecognized_model] {"model":"my-proxy-model","query_source":"sdk"}

В скрипте или 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 из примера строки добавьте эту запись:

    {
      "modelOverrides": {
        "claude-opus-4-6": "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" не удаётся там, где она сидит.

- Stale sandbox mask files left by a killed session: /home/you/project/.claude/settings.local.json
  Fix: Remove each with `rm <path>` while no other Claude Code session is running in that project — a 0-byte read-only file where a settings file belongs makes "Yes, and don't ask again" fail to save, and the sandbox binds it read-only again on every start

Что делать:

  • Выйдите из любого другого сеанса 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