# Устранение неполадок (/ru/docs/wa/troubleshooting)

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

Несколько слов, которые используются на этой странице:

* **Код выхода** — это число, которое команда возвращает по завершении: `0` означает, что она завершена, а любое другое число обозначает тип сбоя. Его читают скрипты и агенты ИИ; В таблице ниже каждый из них сопоставлен с его разделом.
* **`wa <profile> doctor`** проверяет установку без подключения к WhatsApp. Сначала запустите его.

С `--json` ошибка, завершившая команду, выводится одной строкой в stderr, `{"error":{"code":"…","reason":"…",
"message":"…"}}`, а код выхода соответствует полю `code`. Каждый код также находится в [ссылка на код выхода](/llms.mdx/docs/ru/wa/commands/content.md#exit-codes).

## По коду выхода [#по-коду-выхода]

| Код | Имя | Что это обычно означает | Где |
| --- | --- | --- | --- |
| `1` | `internal_error` | ошибка в самом `wa` | [что-то еще](#something-else) |
| `2` | `validation_error` | значение или параметр, который `wa` не принимает, имя, подходящее для нескольких чатов, профиль без имени или команда, которую WhatsApp не может запустить | [назовите профиль](#name-a-profile), [пока нет в wa](/llms.mdx/docs/ru/wa/usage/content.md#not-in-wa-yet) |
| `3` | `configuration_error` | файл конфигурации неправильный, или локальное хранилище новее этой `wa` | [локальное хранилище и другие версии](/llms.mdx/docs/ru/wa/archive/content.md#the-store-and-other-versions) |
| `4` | `authentication_error` | профиль не привязан, или WhatsApp вышел из системы | [вышел из системы](#whatsapp-logged-this-device-out) |
| `5` | `permission_error` | профиль `permissions` отказался от него, или WhatsApp заблокировал или ограничил аккаунт | [разрешения](/llms.mdx/docs/ru/wa/permissions/content.md), [запись](/llms.mdx/docs/ru/wa/limits/content.md#writes) |
| `6` | `not_found` | нет такого чата, сообщения или человека в локальном хранилище; еще ничего не сохранено | [ничего не записано](#nothing-recorded-for-profile--yet) |
| `7` | `confirmation_required` | чата нет в списке получателей, или изменение запрашивается первым, и никто не может ответить | [вопросы в скриптах](/llms.mdx/docs/ru/wa/permissions/content.md#questions-in-scripts) |
| `8` | `rate_limited` | почасовой лимит отправки или WhatsApp попросил замедлить работу аккаунта | [пишет](/llms.mdx/docs/ru/wa/limits/content.md#writes) |
| `9` | `timeout` | телефон не ответил вовремя, или `--timeout` завершил команду | [старая история](/llms.mdx/docs/ru/wa/archive/content.md#older-history-from-your-phone) |
| `10` | `network_error` | `wa` не удалось вовремя подключиться к WhatsApp | [что-то еще](#something-else) |
| `11` | `provider_error` | WhatsApp отклонил запрос, или движок не смог это сделать | [что-то еще](#something-else) |
| `12` | `provider_unavailable` | другая команда удерживает устройство, движок остановился или WhatsApp больше не принимает эту версию | [используется логин](#this-whatsapp-login-is-in-use-by-serve-pid-) |
| `14` | `outcome_unknown` | соединение прервалось после отправки изменения: оно могло выполниться | [безопасные повторы](/llms.mdx/docs/ru/wa/cli-contract/content.md#previews-and-safe-retries) |
| `130` | `cancelled` | вы нажали Ctrl+C или ответили «нет» на вопрос | |

## Первый: `wa doctor` [#первый-wa-doctor]

```sh
wa personal doctor
wa personal doctor --online
```

`doctor`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-doctor "Справочник команды: wa doctor") ни к чему не подключается. Он показывает, установлен ли движок, существуют ли ключи устройства с режимами приватных файлов и кто последним поддерживал одно соединение с устройством. `--online` тоже один раз подключается и считывает аккаунт; он ничего не отправляет ([что показывает `doctor`](/llms.mdx/docs/ru/wa/diagnostics/content.md#check-the-installation-wa-doctor)).

## "для профиля ничего не записано... пока" [#для-профиля-ничего-не-записано-пока]

В локальном хранилище для этого профиля ничего нет. Команды чтения отвечают только из локального хранилища, которое `wa <profile> serve` заполняет с вашего телефона. Сначала свяжите профиль с `wa <profile> setup`.

## «этот логин WhatsApp используется сервером (pid…)» [#этот-логин-whatsapp-используется-сервером-pid]

WhatsApp разрешает одно соединение для каждого связанного устройства, а другая команда `wa` удерживает его. Остановите эту команду или дождитесь ее завершения. Если владельцем является `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve"), команды обычно проходят через него; вы видите это в Windows, где команды не проходят через `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") или пока `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") все еще запускается ([одно соединение на устройство](/llms.mdx/docs/ru/wa/sessions/content.md#one-connection-per-device)). `wa <profile> doctor` называет последнего владельца и сообщает, работает ли его процесс.

## "движок WhatsApp не установлен" [#движок-whatsapp-не-установлен]

`wa` запускает протокол WhatsApp в отдельной программе — движке. npm устанавливает его с помощью `wa` в виде небольшого пакета для вашей системы `@wirecat/whatsapp-engine-<system>-<processor>`; сообщение указывает нужный пакет. Он отсутствует, если при установке пропущены дополнительные пакеты (`--omit=optional` или `optional=false` в `.npmrc`): переустановите без этого. Пакеты движка существуют для Linux, macOS и Windows на x64 и Arm64. При проверке исходного кода соберите его с помощью `pnpm engine:build` (требуется Go). В любом случае, `WA_ENGINE`, установленный на путь, вместо этого запускает этот движок. `wa doctor`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-doctor "Справочник команды: wa doctor") говорит, находит ли движок, и где смотрел.

## «WhatsApp отключил это устройство» [#whatsapp-отключил-это-устройство]

Устройство было удалено на телефоне, или WhatsApp завершил его работу. Запустите `wa <profile> session end`, затем `wa <profile> session start`.

## `serve` остановился сам по себе [#serve-остановился-сам-по-себе]

`wa <profile> server logs` говорит, почему. Падение сети его не останавливает: он снова подключается и продолжает сохраняться. Он останавливается, когда движок умирает (выход 12), а также когда WhatsApp завершает соединение: вышел из системы (выход 4), забанен (выход 5), другое соединение перехватило логин или WhatsApp больше не принимает эту версию (выход 12). Его модуль запускает его снова через 30 секунд, за исключением выхода 4 или 5: для 4 запустите `wa <profile> session start`, затем `wa <profile> server start`; за 5 увидеть телефон, и запустить его заново, как только бан закончится. После перехвата сначала остановите другое соединение. В macOS служба не перезапускает его после любого сбоя, поскольку launchd не может пропустить один код выхода.

## "wa setup нужен терминал для подключения устройства" [#wa-setup-нужен-терминал-для-подключения-устройства]

Привязка через код сопряжения запрашивает ваш номер телефона, поэтому ей нужен терминал. Запустите `setup`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-setup "Справочник команды: wa setup") в терминале или привяжите устройство через QR-код: без терминала QR-код печатается в виде текста для сканирования. Устройство, подключенное ранее, не нуждается в терминале.

## "ширина терминала 40 столбцов, а для QR-кода нужно 69" [#ширина-терминала-40-столбцов-а-для-qr-кода-нужно-69]

Код не рисуется, поскольку код с переносами строк невозможно отсканировать. Расширьте терминал: рисуется следующий код, который отправляет WhatsApp.

## "назовите профиль" [#назовите-профиль]

Каждая команда аккаунта называет свой профиль первым словом: `wa personal chats list`. `wa` никогда не выберет один для вас.

## Что-то еще [#что-то-еще]

Запустите команду еще раз с `--debug` для подробной диагностики и `wa <profile> doctor` для состояния этой установки: движка, файловых режимов ключей устройства и блокировки, читайте без подключения. Сообщите о проблеме в [системе отслеживания проблем](https://github.com/WireCatLabs/whatsapp-cli/issues/new).
