«Установлено, но не работает» — это самый частый отзыв пользователей Claude Code, и почти каждая ошибка сводится к одной из одних и тех же причин. Это руководство разбирает 5 наиболее распространённых ошибок деплоя: сначала точный текст ошибки, затем корневая причина, затем команды для копирования и вставки — всё решаемо менее чем за 10 минут.
Ошибка 1: Недействительный или отсутствующий API-ключ
Это первое препятствие для новичков. Claude Code использует переменную окружения ANTHROPIC_API_KEY для аутентификации — если ключ отсутствует или неверно отформатирован, ошибка возникает немедленно.
Тексты ошибок:
# Любое из этих сообщений означает проблему с API-ключом Error: ANTHROPIC_API_KEY is not set AuthenticationError: 401 {"type":"error","error":{"type":"authentication_error","message":"invalid x-api-key"}} Error: Your API key is invalid.
Команды для исправления:
# 1. Проверить, установлен ли ключ в текущем шелле echo $ANTHROPIC_API_KEY # 2. Установить временно (только для текущей сессии) export ANTHROPIC_API_KEY="sk-ant-api03-xxxxxxxxxx" # 3. Записать в файл конфигурации для постоянного хранения (zsh: ~/.zshrc, bash: ~/.bashrc) echo 'export ANTHROPIC_API_KEY="sk-ant-api03-xxxxxxxxxx"' >> ~/.zshrc source ~/.zshrc # 4. Проверить формат: ключ должен начинаться с sk-ant-api claude --version
Где получить API-ключ
API-ключи создаются на console.anthropic.com → API Keys. Важно: ключ отображается только один раз при создании — скопируйте его немедленно. При потере необходимо создать новый ключ.
Ошибка 2: Несовместимая версия Node.js
Claude Code требует Node.js версии 18 и выше. Более старые версии вызывают синтаксические ошибки при установке или запуске.
Тексты ошибок:
SyntaxError: Unexpected token '?' engine "node" is incompatible with this module. Expected version ">=18". Got "16.x.x" Error [ERR_REQUIRE_ESM]: require() of ES Module ... not supported.
Команды для исправления:
# 1. Проверить текущую версию Node node -v # 2a. Переключиться с помощью nvm (рекомендуется) nvm install 22 nvm use 22 nvm alias default 22 # 2b. Обновить через Homebrew на macOS brew install node@22 brew link --overwrite node@22 # 3. Переустановить Claude Code после обновления Node npm uninstall -g @anthropic-ai/claude-code npm install -g @anthropic-ai/claude-code
Распространённая ловушка на Linux-серверах
Стандартный репозиторий apt Ubuntu/Debian часто содержит Node.js v12 или v16. Используйте NodeSource или nvm вместо apt install nodejs, чтобы избежать устаревших версий.
Ошибка 3: Отказ в доступе
Ошибки доступа бывают двух видов: недостаточно прав для глобальной установки npm и блокировка инструментов среды выполнения Claude Code системной политикой.
Тексты ошибок:
npm ERR! Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules' Error: Permission denied (tool: bash) EPERM: operation not permitted, unlink
Исправление прав npm:
# Изменить директорию глобальных пакетов на домашнюю — sudo не нужен mkdir -p ~/.npm-global npm config set prefix '~/.npm-global' # Добавить в PATH echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc source ~/.zshrc # Переустановить npm install -g @anthropic-ai/claude-code
Исправление разрешений инструментов (bash/файловая система заблокирована политикой Claude Code):
# Явно разрешить инструменты при запуске claude --allowedTools "bash,read,write,edit" # Или настроить в CLAUDE.md (постоянная конфигурация на уровне проекта): # allowed_tools: ["bash", "read", "write", "edit", "glob", "grep"] # Для CI-серверов: --dangerously-skip-permissions пропускает интерактивные подтверждения # Использовать только в доверенных средах claude --dangerously-skip-permissions -p "your prompt here"
Ошибка 4: Таймаут сети или проблемы с прокси
Claude Code должен иметь доступ к api.anthropic.com. В ограниченных сетевых средах — корпоративных интранет-сетях, за прокси или в определённых облачных регионах — возникают таймауты подключения или сбои TLS-рукопожатия.
Тексты ошибок:
FetchError: request to https://api.anthropic.com/v1/messages failed, reason: connect ETIMEDOUT Error: Network request failed: ENOTFOUND api.anthropic.com ProxyError: tunneling socket could not be established, cause=connect ECONNREFUSED
Команды для исправления:
# 1. Проверить прямое соединение curl -v https://api.anthropic.com/v1/messages -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" -H "content-type: application/json" \ -d '{"model":"claude-opus-4-5","max_tokens":10,"messages":[{"role":"user","content":"hi"}]}' # 2. Настроить HTTP-прокси export HTTPS_PROXY="http://proxy.company.com:8080" export HTTP_PROXY="http://proxy.company.com:8080" export NO_PROXY="localhost,127.0.0.1" # 3. Прокси с аутентификацией export HTTPS_PROXY="http://username:password@proxy.company.com:8080" # 4. Кастомный базовый URL (внутренний шлюз предприятия) export ANTHROPIC_BASE_URL="https://your-internal-gateway.company.com"
Примечание о системном прокси macOS
Настройки прокси в Системных настройках macOS не наследуются автоматически процессами Node.js. Необходимо явно установить HTTPS_PROXY в сессии шелла, где запускается Claude Code, или добавить постоянно в ~/.zshrc.
Ошибка 5: Нехватка памяти (OOM) – сбой процесса
При обработке больших кодовых баз или длинных диалогов Claude Code может исчерпать кучу Node.js. Эта ошибка наиболее распространена на машинах с 8 ГБ оперативной памяти или в CI-контейнерах с ограниченной памятью.
Тексты ошибок:
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory Killed (signal 9) ← Linux OOM Killer принудительно завершает процесс RangeError: Maximum call stack size exceeded
Команды для исправления:
# 1. Увеличить лимит кучи Node.js (в МБ, в зависимости от RAM) export NODE_OPTIONS="--max-old-space-size=4096" claude # 2. Проверить текущее использование памяти free -h # Linux vm_stat # macOS # 3. Для больших кодовых баз создать .claudeignore # node_modules/ # dist/ # .next/ # *.lock # 4. В длинных диалогах использовать /clear для освобождения памяти контекста
| Оперативная память | Рекомендуемый --max-old-space-size |
Примечания |
|---|---|---|
| 8 ГБ | 2048 | ~6 ГБ резервируется для ОС и других процессов |
| 16 ГБ | 4096 | Подходит для средних кодовых баз |
| 24 ГБ (стандарт M4 Mac mini) | 8192 | Справляется с большими monorepo |
| 32 ГБ и выше | 16384 | Корпоративные проекты / параллельные экземпляры |
Диагностическая блок-схема: 10 минут до корневой причины
claudeили npm install -gБыстрый справочник по ключевым словам
api-key/401→ Ошибка 1SyntaxError/ESM→ Ошибка 2EACCES/permission→ Ошибка 3ETIMEDOUT/ENOTFOUND→ Ошибка 4heap out of memory/Killed→ Ошибка 5
Всё ещё не работает? Проверьте следующее
- Версия Node ≥ 18 (
node -v) - Ключ начинается с
sk-ant-api curlдостигает api.anthropic.com- Не использовался
sudo npm install -g
Дополнительные советы: стабильная работа Claude Code на сервере
При долгосрочной работе Claude Code на CI-сервере или облачном хосте несколько деталей существенно влияют на стабильность помимо исправления 5 ошибок выше:
tmuxилиscreen— процесс продолжает работу после разрыва SSH, длинные задачи не прерываются- Ведите
CLAUDE.md— документируйте соглашения проекта, снижайте потребление токенов --output-format json— легче парсить ответы в скриптах автоматизацииdirenv— автоматическая загрузка переменных окружения при входе в директорию проекта
Выделенный macOS-сервер устраняет большинство ошибок
Достаточный объём памяти (16–24 ГБ унифицированной памяти), прямое сетевое подключение, без прокси — вот истинные причины, по которым большинство ошибок OOM и таймаутов исчезают на нормальном сервере. Выделенные экземпляры Mac mini M4 от ZavCloud поставляются с предустановленной средой Node.js — развёртывание сразу после получения.
ZavCloud Cloud Mac
Запустить Claude Code на выделенном macOS-сервере
Выделенный экземпляр Mac mini M4: 24 ГБ унифицированной памяти, прямое подключение 1 Гбит/с, настоящий macOS — забудьте об OOM и таймаутах сети.
Смотреть предложения Cloud Mac →