SpyBara
Go Premium

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

This page contains 1381 additions and 1149 deletions.

2026
Thu 1 23:59 Fri 2 18: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
is less capable than the current main model / Advisor will not activate on the main model / cannot advise 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
Claude Code can't read the keyboard here: stdin is not a terminal 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
Your GitHub organization has an IP allowlist that is blocking Claude Command-line errors
Your GitHub organization requires single sign-on Command-line errors
Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude 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
/recap only runs when you ask for it yourself in this session 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
The packages it lists are not installed / The packages it lists were not installed, because 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
Error: No such tool available: <tool name> Tool errors
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
Not published: that file is on a network share 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
API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name 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 or /clear to continue

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

Если вы отключили автосжатие в пользовательских настройках, строка также сообщает об этом:

Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on

Переключатель 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: <the underlying error>

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

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

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

Prompt is too long · the request is ~<request tokens> tokens (limit <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 ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> 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., диалог состоит из одного обмена и суммировать нечего, поэтому место занято этим единственным промптом и тем, что Claude Code отправляет с каждым запросом: выполните /clear и отправьте запрос заново с меньшим объёмом вставленного текста или меньшими вложениями либо сократите определения инструментов и файлы памяти, следуя шагам ниже
  • Выполните /context, чтобы увидеть разбивку того, что занимает окно: системный промпт, инструменты, файлы памяти и сообщения
  • Отключите неиспользуемые MCP-серверы с помощью /mcp disable <name>, чтобы убрать их определения инструментов из контекста
  • Сократите большие файлы памяти CLAUDE.md или перенесите инструкции в правила, привязанные к путям, которые загружаются только при необходимости
  • Автосжатие включено по умолчанию и обычно предотвращает эту ошибку. Если вы отключили его в /config или с помощью DISABLE_AUTO_COMPACT, включите его снова. Если вы оставляете его отключённым, выполняйте /compact самостоятельно до заполнения окна.

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

Context exceeds the token limit

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

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. О том, какие PDF читаются по диапазону страниц, см. в разделе Read tool behavior.

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

Ошибка также может возникнуть для инструмента, чья схема объявляет в $schema диалект JSON Schema, отличный от draft 2020-12. Claude Code не проверяет такие схемы на соответствие метасхеме JSON Schema, хотя проверка имён свойств верхнего уровня по-прежнему применяется.

До версии 2.1.216 ни одно развёртывание не выполняло проверки исключения.

Что делать:

  • Если ваша версия Claude Code ниже v2.1.216, выполните claude update.
  • Удалите или отключите MCP-сервер, объявляющий недопустимую схему. Ошибка указывает инструмент только по позиции. В v2.1.216 и новее проверьте лог каждого сервера на наличие строки с именем инструмента, чья схема входных данных будет отклонена. Если ни один лог его не называет, отключайте серверы по одному.
  • Если вы поддерживаете сервер, исправьте input_schema инструмента. Схема должна быть допустимой JSON Schema, а имена свойств верхнего уровня должны иметь длину от 1 до 64 символов и содержать только буквы и цифры ASCII, _, . и -. См. раздел Tools with invalid input schemas.

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.

Model is not a recognized model id

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

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

Model not found

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

Couldn't confirm model with the API

Вы переключили модель через метод setModel() в Agent SDK или через приложение, которое запускает для вас 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 <name>, или приложение, подключённое к сессии, запросило переключение. API отклонил минимальный запрос, который Claude Code отправляет для проверки модели, по причине, не имеющей отдельного раздела, например из-за ограничения частоты запросов или ошибки сервера. Сессия сохраняет текущую модель, о чём сообщается в конце сообщения:

API error: 429 <the server's explanation> · 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, сообщение предлагает sign out and sign in again вместо названий команд.

Что делать:

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

Claude Code does not support this model

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

API 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 Обновите приложение
Бинарный файл, входящий в расширение VS Code Обновите расширение
Бинарный файл, входящий в пакет 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 <name> для ограниченной модели отклоняется, и сессия сохраняет текущую модель. Для модели, отключённой в консоли администратора, отказ звучит так: Model '<name>' is restricted by your organization's settings. Run /model to choose a different model. Для модели, исключённой управляемыми настройками: Model '<name>' is not available. Your organization restricts model selection.

Уведомление с префиксом в виде имени агента, скилла или команды означает, что ограничение применено к модели, запрошенной субагентом: субагент работает на подставленной модели, а модель вашей сессии не меняется. До версии 2.1.223 Claude Code показывал уведомление только для субагентов, запущенных инструментом Agent.

Claude Code рассматривает псевдоним семейства моделей — opus, sonnet, haiku или fable — как запрос этого семейства, а не его новейшей версии. В Anthropic API и на Claude Platform on AWS ограниченный псевдоним семейства указывает на новейшую версию семейства, разрешённую настройками вашей организации, и уведомление о замене называет эту версию. Claude Code отклоняет /model <alias>, только если ограничены все версии семейства. До версии 2.1.205 псевдоним семейства заменялся или отклонялся исходя только из его новейшей версии, даже если более старая версия того же семейства была разрешена.

Что делать:

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

Can't switch to the default model

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

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

До версии 2.1.260 отказ из-за управляемого плагина звучал как plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log. Claude Code один раз повторял загрузку плагина, а затем отклонял последующие переключения в сессии, даже если ваша организация не управляла никакими плагинами. В этих версиях перезапустите сессию, чтобы снова выполнить загрузку плагинов.

Couldn't save it as your default

Вы выбрали модель, чтобы сохранить её как модель по умолчанию, например с помощью /model <name> или Enter в окне выбора /model, и Claude Code не смог записать выбор в файл пользовательских настроек ~/.claude/settings.json. Само переключение применилось, поэтому текущая сессия работает на выбранной модели, но модель по умолчанию не изменилась, и следующая сессия начнётся со старого значения.

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 (<code>): запись не удалась с кодом ошибки операционной системы в скобках, например EROFS, когда файл или файл, на который он ссылается, находится в файловой системе, запрещающей запись. Сделайте файл доступным для записи и переключитесь снова. Если файл генерирует другой инструмент, задайте ключ model в этом инструменте; см. раздел A change you made in Claude Code is lost in new sessions.
  • isn't valid JSON: файл на диске не разбирается, и Claude Code оставляет его нетронутым, а не перезаписывает содержимое, которое не может прочитать. Исправьте синтаксическую ошибку, затем переключитесь снова; см. раздел Fix a broken settings file.

Уведомление, заканчивающееся на couldn't confirm it was saved as your default (~/.claude/settings.json is still being written), означает, что запись не завершилась за три секунды. Она продолжается в фоне, поэтому модель по умолчанию всё ещё может сохраниться; проверьте, на какой модели начнётся следующая сессия, или снова выполните /model <name>.

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

Advisor is less capable than the current main model

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

Advisor set to Opus 4.8
Note: Opus 4.8 is less capable than the current main model (Sonnet 5.5), so the advisor will not activate. Choose a more capable advisor, or switch to a smaller main model.

О том же состоянии сообщают и другие сообщения:

  • В интерактивной сессии уведомление звучит так: Advisor will not activate on the main model (advisor is less capable); subagents may still use it and may use more tokens · /advisor.
  • При запуске с флагом --advisor выводится предупреждение "<advisor>" cannot advise "<main model>" (the advisor must be at least as capable as the main model). The advisor will not be used for the main model., и сессия всё равно запускается.

Что делать:

  • Выберите советника с более высоким рейтингом или основную модель с более низким рейтингом. В разделе Choose an advisor model приведён рейтинг и перечислены допустимые советники для каждой основной модели.
  • Оставьте советника заданным, если хотите, чтобы субагенты, чью модель он может консультировать, продолжали его использовать

До версии 2.1.287 Claude Code оценивал некоторые пары иначе. Он показывал это примечание для советника Sonnet 5.5 с основной моделью Opus 4.7 или Opus 4.8 — пары, которую он теперь принимает. Кроме того, он подключал некоторых советников, для которых теперь выводится это примечание, например советника Opus 4.8 с основной моделью Sonnet 5.5.

thinking.type.enabled is not supported for this model

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

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

Вы отключили расширенное мышление и работали с уровнем effort выше 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, — как you can lower effort to High.

Что делать:

До версии 2.1.242 Claude Code показывал собственное сообщение API: API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking. До версии 2.1.251 Claude Code отправлял запрос с заданным вами уровнем effort, поэтому Opus 5 отклонял каждый запрос выше high при отключённом мышлении. Теперь Claude Code отправляет effort high моделям, которые, как ему известно, отклоняют такое сочетание, например Opus 5.

Thinking budget exceeds output limit

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

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

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]

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

Что делать:

  • Если вы видите строку-заполнитель, ничего делать не нужно. Сессия продолжается без удалённого содержимого.
  • Если вместо этого каждый ход возобновлённой сессии завершается ошибкой 400, выполните claude update и снова возобновите сессию. Версии до v2.1.246 не удаляют такое содержимое.

role 'system' must precede an 'assistant' message

API отклонил запрос с кодом 400, потому что системное сообщение находится в недопустимой для него позиции в диалоге:

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

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

Что делать:

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

Usage Policy refusal

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

Сообщение содержит 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, если модель не записана.

Проверка оценивает весь диалог, а не только ваш последний промпт, поэтому отправка нового сообщения в той же сессии обычно снова вызывает тот же отказ. То же самое происходит после выхода и повторного открытия сессии с --continue или --resume, так как транскрипт на диске по-прежнему содержит вызвавшее отказ содержимое. В Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry это сообщение также охватывает запросы, которые меры безопасности модели пометили как относящиеся к теме кибербезопасности. См. раздел Safety measures flagged a cybersecurity topic.

До версии 2.1.219 сообщение звучало так: Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.

Что делать:

  • Дважды нажмите Esc или выполните /rewind, чтобы вернуться к чекпоинту до хода, вызвавшего отказ, затем переформулируйте запрос или выберите другой подход. См. раздел Чекпоинты.
  • Если вы не можете определить, какой ход вызвал отказ, выполните /clear, чтобы начать новый диалог в том же проекте. Предыдущий диалог сохраняется на диске и остаётся доступным в /resume.
  • В неинтерактивном режиме (-p), где возврат недоступен, повторите попытку с переформулированным промптом в новой сессии без --continue. Проверки политики различаются в зависимости от модели, поэтому в некоторых случаях отказ также может устранить переключение на другую модель с помощью --model.

Safety measures flagged a cybersecurity topic

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

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 сообщение вместо этого начинается с <model>'s safeguards flagged this session. Если для помеченной категории доступна резервная модель, Claude Code переключает модель, а не показывает эту ошибку.

В Amazon Bedrock, Google Cloud's Agent Platform и Microsoft Foundry пометка кибербезопасности вместо этого приводит к сообщению Usage Policy refusal.

Сама защита работает на стороне сервера и существовала до v2.1.203; с тех пор в клиентских выпусках менялась только формулировка сообщения. С v2.1.203 по v2.1.218 сообщение звучало как <model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:, за которым следовала та же ссылка на справочный центр, а интерактивные сессии добавляли If you were not engaging in a cybersecurity topic, please send feedback via /feedback. До версии 2.1.203 оно звучало как <model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:, за которым следовала ссылка на форму для исключения.

Что делать:

  • Если ваша работа требует такого содержимого, подайте заявку на доступ через Cyber Verification Program
  • Если ваш запрос не касался кибербезопасности, выполните /feedback, чтобы сообщить о ложном срабатывании
  • Чтобы продолжить работу в той же сессии, дважды нажмите Esc или выполните /rewind, чтобы вернуться к чекпоинту до хода, вызвавшего пометку, затем выберите другой подход. См. раздел Чекпоинты.

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

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

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

Что делать:

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

Вы выполнили claude без -p, что запускает интерактивную сессию, но её стандартный ввод не является терминалом. Что-то передало его через конвейер или перенаправило, либо программа, запустившая claude, предоставила собственный поток ввода.

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

  • Windows: Claude Code выводит сообщение в stderr и завершается с кодом выхода 1 вместо запуска интерфейса
  • macOS и Linux: Claude Code читает нажатия клавиш из /dev/tty и запускает сессию, используя переданный через конвейер текст как первый промпт. Вы видите сообщение, когда /dev/tty не удаётся открыть, и его первая строка упоминает /dev/tty вместо формулировки для Windows.

В Windows сообщение выглядит так:

Claude Code can't read the keyboard here: stdin is not a terminal (it is piped, redirected, or supplied by the program that launched claude), and on Windows it can't fall back to the console for input yet.
Run claude directly in Windows Terminal, PowerShell, or Command Prompt, without piping or redirecting its input.
To send text as a prompt and print the reply instead, add -p; it also works with --continue and --resume <session-id> (for example: type notes.md | claude -p --continue).

Что делать:

  • Для интерактивной работы запускайте claude непосредственно в терминале, не передавая и не перенаправляя его ввод
  • Чтобы получить ответ без интерактивного интерфейса, например из скрипта, добавьте -p и передайте промпт как аргумент или через stdin, например claude -p "your question" или echo "your question" | claude -p. То же работает с --continue и --resume <session-id>.

До v2.1.287 Claude Code вместо вывода этого сообщения запускал интерфейс, а затем либо ничего не показывал на экране, либо завершался с ошибкой, содержащей Raw mode is not supported.

Если вы видите Raw mode is not supported во время claude install, см. Raw mode is not supported во время установки.

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

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

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

До v2.1.229 Claude Code отправлял сообщение из одних пробельных символов в API, который отклонял запрос с ошибкой 400.

Что делать:

  • Включите в промпт видимый текст. Если скрипт формирует промпт из переменной или файла, проверьте, что источник не пуст, перед вызовом Claude Code.

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

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

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.

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

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

Если доступ блокирует список разрешённых IP-адресов, сообщение выглядит так:

Your GitHub organization has an IP allowlist that is blocking Claude. Add Claude's IP ranges to your GitHub allowlist.

Если доступ блокирует единый вход (single sign-on), сообщение выглядит так:

Your GitHub organization requires single sign-on. Disconnect and reconnect GitHub on the Connectors page in Claude on the web, click Authorize next to your organization when GitHub asks, then try again.

Если доступ блокирует политика условного доступа Microsoft Entra ID, сообщение выглядит так:

Your GitHub organization's identity provider (Microsoft Entra ID) has a Conditional Access policy that is blocking Claude. Ask your GitHub Enterprise or Entra ID admin to allow Claude in that policy.

Что делать:

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

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

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

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, чтобы начать новую сессию

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

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

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

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

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

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

Что делать:

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

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

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

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.

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

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

Что делать:

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

Не удалось открыть Claude 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-doctor через Remote Control с телефона или из браузера. Claude Code не отправляет отчёт об использовании скиллов через Remote Control и вместо этого отвечает таким сообщением:

Skill usage reports are not available on this connection.

Что делать:

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

Пользовательские стили вывода нельзя выбрать через 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-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; см. Активация стиля вывода

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

Запрос /recap поступил не из вашего собственного ввода. Он пришёл в сообщении, переданном в сессию из ветки Slack, Teams или проекта, либо в промпте, который отправила routine или другая программа.

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

/recap only runs when you ask for it yourself in this session: from the terminal, the Claude app or claude.ai/code, or over Remote Control. A message relayed from Slack, Teams or a project thread, or sent by a routine or another program, can't request it.

/recap, который вы передаёте в claude -p или который ваше собственное приложение на Agent SDK отправляет в запущенную им сессию, считается вашим собственным вводом.

Что делать:

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

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

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

No such tool available

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

Error: No such tool available: <tool name>
Error: No such tool available: read. Tool names are case-sensitive: call Read instead.

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

Вызов, имя инструмента в котором Claude Code обрезал до 200 символов, также завершается этой ошибкой.

Что делать:

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

Agent would be spawned with zero tools

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

  • Unrecognized: запись не соответствует ни одному имени инструмента, обычно это опечатка, например Grpe вместо Grep.
  • Not available to subagents: запись называет реальный инструмент, который субагенты не могут использовать. Фоновые субагенты имеют меньший встроенный набор инструментов, поэтому запись, которую может использовать только субагент переднего плана, попадает сюда, когда субагент будет работать в фоне, что является значением по умолчанию. Если вы указываете Agent, сообщение относит его к следующей группе.
  • Matched no tools in this session: запись действительна, но ни один инструмент в текущей сессии не соответствует ей прямо сейчас, например mcp__github__* без подключённого MCP-сервера GitHub или Agent для субагента на пределе глубины.

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

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

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 с 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, пока работает сессия. Установите 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 little-endian. Когда такой файл UTF-16 не декодируется, первое сообщение называет UTF-16 и всё равно предлагает переписать файл в UTF-8. Если после названной позиции есть и другие, сообщение добавляет после позиции счётчик, например (+2 more).

Что делать:

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

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

Not published: that file is on a network share

Claude попытался опубликовать артефакт из файла по пути, указывающему на сетевой хост:

  • В Windows — путь \\server\share, не находящийся на подключённом сетевом диске, который вы передали при запуске с помощью --add-dir
  • В macOS или Linux — путь автомонтирования, например /net/<host>/page.html

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

Not published: that file is on a network share. Publish a file from this session's folders instead.

Что делать:

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

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

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

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

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

ANTHROPIC\_FOUNDRY\_RESOURCE must be a Foundry resource name

Вы задали для ANTHROPIC_FOUNDRY_RESOURCE значение, отличное от простого имени ресурса Microsoft Foundry, например URL эндпоинта или его имя хоста. Claude Code отклонил значение до отправки запроса. Сообщение появляется вместо ответа Claude, а не как предупреждение при запуске:

API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name (2-64 letters, digits and hyphens, not starting or ending with a hyphen, such as my-resource), not a URL or host name. To use a full URL, set ANTHROPIC_FOUNDRY_BASE_URL instead.

Что делать:

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

The 200K limit isn't enforced

Вы установили CLAUDE_CODE_DISABLE_1M_CONTEXT=1, что обычно заставляет auto-compaction держать сеансы на 1M-context моделях в окне 200K, но нет порога compaction, который ограничивает этот сеанс на или ниже 200K, поэтому беседа может расти за его пределы.

CLAUDE_CODE_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