WhatsApp

Устранение неполадок

Решайте проблемы привязки WhatsApp, подключения, истории и загрузки файлов.

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

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

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

С --json ошибка, завершившая команду, выводится одной строкой в stderr, {"error":{"code":"…","reason":"…", "message":"…"}}, а код выхода соответствует полю code. Каждый код также находится в ссылка на код выхода.

По коду выхода

КодИмяЧто это обычно означаетГде
1internal_errorошибка в самом waчто-то еще
2validation_errorзначение или параметр, который wa не принимает, имя, подходящее для нескольких чатов, профиль без имени или команда, которую WhatsApp не может запуститьназовите профиль, пока нет в wa
3configuration_errorфайл конфигурации неправильный, или локальное хранилище новее этой waлокальное хранилище и другие версии
4authentication_errorпрофиль не привязан, или WhatsApp вышел из системывышел из системы
5permission_errorпрофиль permissions отказался от него, или WhatsApp заблокировал или ограничил аккаунтразрешения, запись
6not_foundнет такого чата, сообщения или человека в локальном хранилище; еще ничего не сохраненоничего не записано
7confirmation_requiredчата нет в списке получателей, или изменение запрашивается первым, и никто не может ответитьвопросы в скриптах
8rate_limitedпочасовой лимит отправки или WhatsApp попросил замедлить работу аккаунтапишет
9timeoutтелефон не ответил вовремя, или --timeout завершил командустарая история
10network_errorwa не удалось вовремя подключиться к WhatsAppчто-то еще
11provider_errorWhatsApp отклонил запрос, или движок не смог это сделатьчто-то еще
12provider_unavailableдругая команда удерживает устройство, движок остановился или WhatsApp больше не принимает эту версиюиспользуется логин
14outcome_unknownсоединение прервалось после отправки изменения: оно могло выполнитьсябезопасные повторы
130cancelledвы нажали Ctrl+C или ответили «нет» на вопрос

Первый: wa doctor

wa personal doctor
wa personal doctor --online

doctor ни к чему не подключается. Он показывает, установлен ли движок, существуют ли ключи устройства с режимами приватных файлов и кто последним поддерживал одно соединение с устройством. --online тоже один раз подключается и считывает аккаунт; он ничего не отправляет (что показывает doctor).

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

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

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

WhatsApp разрешает одно соединение для каждого связанного устройства, а другая команда wa удерживает его. Остановите эту команду или дождитесь ее завершения. Если владельцем является serve, команды обычно проходят через него; вы видите это в Windows, где команды не проходят через serve или пока serve все еще запускается (одно соединение на устройство). wa <profile> doctor называет последнего владельца и сообщает, работает ли его процесс.

"движок 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 говорит, находит ли движок, и где смотрел.

«WhatsApp отключил это устройство»

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

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

Привязка через код сопряжения запрашивает ваш номер телефона, поэтому ей нужен терминал. Запустите setup в терминале или привяжите устройство через QR-код: без терминала QR-код печатается в виде текста для сканирования. Устройство, подключенное ранее, не нуждается в терминале.

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

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

"назовите профиль"

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

Что-то еще

Запустите команду еще раз с --debug для подробной диагностики и wa <profile> doctor для состояния этой установки: движка, файловых режимов ключей устройства и блокировки, читайте без подключения. Сообщите о проблеме в системе отслеживания проблем.