Устранение неполадок
В этом руководстве представлены решения распространенных проблем и советы по отладке, включая следующие темы:
- Ошибки аутентификации или входа в систему
- Часто задаваемые вопросы (FAQ)
- Советы по отладке
- Существующие проблемы на GitHub, аналогичные вашим, или создание новых проблем
Ошибки аутентификации или входа в систему
-
Ошибка:
UNABLE_TO_GET_ISSUER_CERT_LOCALLY,UNABLE_TO_VERIFY_LEAF_SIGNATUREилиunable to get local issuer certificate- Причина: Вы можете находиться в корпоративной сети с межсетевым экраном, который перехватывает и проверяет трафик SSL/TLS. Часто это требует доверия пользовательского корневого сертификата центра сертификации (CA) со стороны Node.js.
- Решение: Установите переменную окружения
NODE_EXTRA_CA_CERTSв абсолютный путь к файлу корневого сертификата центра сертификации вашей компании.- Пример:
export NODE_EXTRA_CA_CERTS=/path/to/your/corporate-ca.crt
- Пример:
-
Ошибка:
Device authorization flow failed: fetch failed- Причина: Node.js не может получить доступ к конечным точкам Qwen OAuth (часто из-за прокси или проблемы доверия SSL/TLS). Когда доступно, Qwen Code также выводит основную причину ошибки (например:
UNABLE_TO_VERIFY_LEAF_SIGNATURE). - Решение:
- Убедитесь, что вы можете получить доступ к
https://chat.qwen.aiс того же компьютера/сети. - Если вы находитесь за прокси, установите его через
qwen --proxy <url>(или параметрproxyвsettings.json). - Если ваша сеть использует корпоративный центр сертификации для проверки TLS, установите
NODE_EXTRA_CA_CERTS, как описано выше.
- Убедитесь, что вы можете получить доступ к
- Причина: Node.js не может получить доступ к конечным точкам Qwen OAuth (часто из-за прокси или проблемы доверия SSL/TLS). Когда доступно, Qwen Code также выводит основную причину ошибки (например:
-
Проблема: Невозможно отобразить интерфейс после неудачной аутентификации
- Причина: Если аутентификация завершается неудачно после выбора типа аутентификации, настройка
security.auth.selectedTypeможет быть сохранена вsettings.json. При перезапуске CLI может зависнуть, пытаясь аутентифицироваться с помощью неудачного типа аутентификации, и не отображать интерфейс. - Решение: Очистите элемент конфигурации
security.auth.selectedTypeв вашем файлеsettings.json:- Откройте
~/.qwen/settings.json(или./.qwen/settings.jsonдля настроек, специфичных для проекта) - Удалите поле
security.auth.selectedType - Перезапустите CLI, чтобы он снова запросил аутентификацию
- Откройте
- Причина: Если аутентификация завершается неудачно после выбора типа аутентификации, настройка
Часто задаваемые вопросы (FAQ)
-
В: Как обновить Qwen Code до последней версии?
- О: Если вы установили его глобально через
npm, обновите с помощью командыnpm install -g @qwen-code/qwen-code@latest. Если вы собрали его из исходного кода, получите последние изменения из репозитория, а затем пересоберите с помощью командыnpm run build.
- О: Если вы установили его глобально через
-
В: Где хранятся файлы конфигурации или настроек Qwen Code?
-
О: Конфигурация Qwen Code хранится в двух файлах
settings.json:- В вашей домашней директории:
~/.qwen/settings.json. - В корневой директории вашего проекта:
./.qwen/settings.json.
Подробнее см. Конфигурация Qwen Code.
- В вашей домашней директории:
-
-
В: Почему я не вижу количество кэшированных токенов в выводе статистики?
- О: Информация о кэшированных токенах отображается только тогда, когда используются кэшированные токены. Эта функция доступна для пользователей с API-ключами (ключ Qwen API или Google Cloud Vertex AI), но недоступна для пользователей OAuth (например, личные/корпоративные аккаунты Google, такие как Google Gmail или Google Workspace соответственно). Это связано с тем, что API Qwen Code Assist не поддерживает создание кэшированного контента. Вы по-прежнему можете просматривать общее использование токенов с помощью команды
/stats.
- О: Информация о кэшированных токенах отображается только тогда, когда используются кэшированные токены. Эта функция доступна для пользователей с API-ключами (ключ Qwen API или Google Cloud Vertex AI), но недоступна для пользователей OAuth (например, личные/корпоративные аккаунты Google, такие как Google Gmail или Google Workspace соответственно). Это связано с тем, что API Qwen Code Assist не поддерживает создание кэшированного контента. Вы по-прежнему можете просматривать общее использование токенов с помощью команды
Распространенные сообщения об ошибках и решения
-
Ошибка:
EADDRINUSE(Адрес уже используется) при запуске сервера MCP.- Причина: Другой процесс уже использует порт, к которому пытается привязаться сервер MCP.
- Решение: Либо остановите другой процесс, использующий порт, либо настройте сервер MCP на использование другого порта.
-
Ошибка: Команда не найдена (при попытке запустить Qwen Code с помощью
qwen).- Причина: CLI установлен неправильно или отсутствует в системной переменной
PATH. - Решение:
Обновление зависит от способа установки Qwen Code:
- Если вы установили
qwenглобально, проверьте, что глобальный каталог бинарных файлов npm находится в вашей переменнойPATH. Вы можете выполнить обновление командойnpm install -g @qwen-code/qwen-code@latest. - Если вы запускаете
qwenиз исходного кода, убедитесь, что используете правильную команду для его вызова (например,node packages/cli/dist/index.js ...). Для обновления загрузите последние изменения из репозитория, а затем пересоберите проект командойnpm run build.
- Если вы установили
- Причина: CLI установлен неправильно или отсутствует в системной переменной
-
Ошибка:
MODULE_NOT_FOUNDили ошибки импорта.- Причина: Зависимости установлены неправильно или проект не собран.
- Решение:
- Выполните
npm install, чтобы убедиться, что все зависимости присутствуют. - Выполните
npm run buildдля компиляции проекта. - Проверьте успешное завершение сборки командой
npm run start.
- Выполните
-
Ошибка: “Operation not permitted”, “Permission denied” или аналогичные.
- Причина: При включенном песочнице Qwen Code может пытаться выполнить операции, ограниченные конфигурацией песочницы, такие как запись вне каталога проекта или системного временного каталога.
- Решение: Обратитесь к документации Конфигурация: Песочница для получения дополнительной информации, включая настройку конфигурации песочницы.
-
Qwen Code не работает в интерактивном режиме в средах “CI”
- Проблема: Qwen Code не переходит в интерактивный режим (не появляется приглашение), если установлена переменная окружения, начинающаяся с
CI_(например,CI_TOKEN). Это связано с тем, что пакетis-in-ci, используемый базовым UI-фреймворком, обнаруживает эти переменные и предполагает работу в неинтерактивной CI-среде. - Причина: Пакет
is-in-ciпроверяет наличие переменныхCI,CONTINUOUS_INTEGRATIONили любой переменной окружения с префиксомCI_. Когда любая из них обнаружена, это сигнализирует о неинтерактивной среде, что препятствует запуску CLI в интерактивном режиме. - Решение: Если переменная с префиксом
CI_не нужна для работы CLI, вы можете временно отменить её установку для команды. Например,env -u CI_TOKEN qwen
- Проблема: Qwen Code не переходит в интерактивный режим (не появляется приглашение), если установлена переменная окружения, начинающаяся с
-
Режим DEBUG не работает из файла .env проекта
- Проблема: Установка
DEBUG=trueв файле.envпроекта не включает режим отладки для CLI. - Причина: Переменные
DEBUGиDEBUG_MODEавтоматически исключаются из файлов.envпроекта, чтобы предотвратить вмешательство в поведение CLI. - Решение: Вместо этого используйте файл
.qwen/.envили настройте параметрadvanced.excludedEnvVarsв вашемsettings.json, чтобы исключать меньше переменных.
- Проблема: Установка
Спутник IDE не подключается
- Убедитесь, что в VS Code открыта одна рабочая папка.
- Перезапустите интегрированный терминал после установки расширения, чтобы он унаследовал:
QWEN_CODE_IDE_WORKSPACE_PATHQWEN_CODE_IDE_SERVER_PORT
- Если запуск осуществляется в контейнере, проверьте разрешение
host.docker.internal. В противном случае, сопоставьте хост должным образом. - Переустановите спутник с помощью
/ide installи используйте «Qwen Code: Run» в Палитре команд, чтобы убедиться, что он запускается.
Коды завершения
Qwen Code использует определенные коды завершения для указания причины остановки. Это особенно полезно для сценариев и автоматизации.
| Код завершения | Тип ошибки | Описание |
|---|---|---|
| 41 | FatalAuthenticationError | Произошла ошибка во время процесса аутентификации. |
| 42 | FatalInputError | В CLI предоставлены неверные или отсутствующие входные данные. (только в неинтерактивном режиме) |
| 44 | FatalSandboxError | Произошла ошибка в окружении песочницы (например, Docker, Podman или Seatbelt). |
| 52 | FatalConfigError | Файл конфигурации (settings.json) недействителен или содержит ошибки. |
| 53 | FatalTurnLimitedError | Достигнуто максимальное количество ходов в сессии. (только в неинтерактивном режиме) |
Советы по отладке
-
Отладка через CLI:
- Используйте флаг
--verbose(если доступен) с командами CLI для получения более подробного вывода. - Проверьте логи CLI, которые часто находятся в пользовательской директории конфигурации или кэша.
- Используйте флаг
-
Основная отладка:
- Проверьте вывод консоли сервера на наличие сообщений об ошибках или трассировок стека.
- Увеличьте детализацию логов, если это возможно настроить.
- Используйте инструменты отладки Node.js (например,
node --inspect), если вам нужно пройтись по коду на стороне сервера.
-
Проблемы с инструментами:
- Если конкретный инструмент не работает, попробуйте изолировать проблему, запустив максимально простую версию команды или операции, которую выполняет инструмент.
- Для
run_shell_commandпроверьте, что команда работает напрямую в вашей оболочке. - Для инструментов файловой системы убедитесь, что пути указаны правильно, и проверьте права доступа.
-
Предварительные проверки:
- Всегда запускайте
npm run preflightперед коммитом кода. Это может помочь выявить множество распространенных проблем, связанных с форматированием, линтингом и ошибками типизации.
- Всегда запускайте
Существующие проблемы на GitHub, похожие на ваши, или создание новых проблем
Если вы столкнулись с проблемой, которая не была рассмотрена в этом руководстве по устранению неполадок, попробуйте поискать в трекере проблем Qwen Code на GitHub . Если вы не можете найти проблему, похожую на вашу, создайте новую проблему на GitHub с подробным описанием. Также приветствуются пулл-реквесты!