Заморозка, спам-ограничение и «притормози»: три разных диагноза

«Аккаунт перестал писать» — это не диагноз, а симптом. За ним стоят как минимум пять разных состояний, и они лечатся по-разному: одно проходит за минуты само, другое — за недели, третье не проходит никогда. Разбираемся, как их различать и почему за одно из них аккаунт нельзя наказывать.

Диагноз 1. «Притормози» — и это вообще не наказание

Самое частое и самое безобидное. Telegram отвечает: подожди столько-то секунд. Бывает в двух видах:

  • Медленный режим чата — свойство комнаты: здесь всем можно писать не чаще раза в N секунд. К вашему аккаунту это отношения не имеет.
  • Ограничение темпа аккаунта — вы частите, площадка просит сбавить.

Ключевое: это регулировщик, а не приговор. Аккаунт здоров, ничего не «сгорело», через указанное время он работает как работал.

И вот здесь совершается самая обидная ошибка: несколько таких ответов подряд принимают за признак ограничения и вешают на аккаунт клеймо. Получается, что аккаунт наказан за то, что работал быстро, — и человек начинает лечить то, чего нет.

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

Диагноз 2. Спам-ограничение — временное, но серьёзное

Аккаунту закрыли запись — обычно в публичные супергруппы. Личные сообщения при этом могут работать, что дополнительно путает картину.

Это состояние снимается само, но не за минуты: от часов до недель, в зависимости от истории аккаунта. Никакого действия от вас оно не требует, кроме одного — перестать долбиться.

Как узнать об ограничении заранее — и как не сделать хуже

Единственный способ спросить прямо — служебный бот Telegram. Он для этого и сделан, и само обращение к нему ничем не грозит. Опасно другое — как к нему обращаются.

Массовая проверка «одной кнопкой», когда команда уходит со всего флота — всех ваших рабочих аккаунтов — одинаковой пачкой, — это заявление, что сотня аккаунтов управляется из одной точки. Мы считаем, что именно такой почерк, а не сам бот, стоил в своё время массовых блокировок. Поэтому проверка идёт точечно, с паузами, и одному аккаунту такой вопрос задаётся не чаще раза в трое суток.

Две тонкости, которые видно только на живых данных:

  • Ответ ищется по номеру нашего сообщения, а не по дате. В переписке со служебным ботом лежит вся история за годы, а часовые пояса клиента, сервера и площадки разъезжаются. Берётся только сообщение с номером больше нашего вопроса.
  • Нет подтверждения, что вопрос ушёл, — значит мы не спрашивали. Это не формальность: при мёртвом прокси отправка проваливается молча, и «свежим ответом» оказывается прошлогодний ответ бота. Кабинет рисует новенькое ограничение, а рядом честно пишет «прокси не отвечает». Мы такое уже ловили — теперь несостоявшийся обмен считается отказом связи, а не диагнозом аккаунту.

И правило про сам ответ: незнакомая формулировка — это «неизвестно» плюс исходный текст перед глазами, а не наша догадка. Если бот сменит формулировку, человек увидит настоящий текст и разберётся сам.

Диагноз 3. Заморозка — единственное необратимое

Аккаунт переведён в режим «только чтение». Это не ограничение на время: если апелляция не подана, аккаунт удаляется к назначенной дате.

Восстановления замороженного аккаунта у нас нет. Заморозка терминальна, и мы не делаем вид, что это лечится настройкой.

Зато её можно увидеть, не тронув аккаунт. Обычная проверка «а могу ли я писать» здесь работает против вас: попытка отправки в таком состоянии сама по себе ухудшает положение. Но заморозка лежит открыто в конфигурации приложения — с датой начала, датой удаления и ссылкой на апелляцию. Это обычный запрос, который делает при старте любой клиент, и следов он не оставляет. Заморозку видно без единой отправки.

Про апелляцию — честно: бот подтверждает только приём обращения. Решение приходит позже и не через него. Слов «одобрено» и «отклонено» на экране быть не должно, потому что их нам никто не говорил.

Ещё два состояния, которые принимают за эти три

  • Мёртвая сессия. Аккаунт жив, но вход недействителен — лечится только повторным входом, это управление аккаунтами. Отдельный подвид: два одновременных подключения к одной сессии, после чего площадка убивает её сама. Это, кстати, довод против «работы с одного аккаунта в двух местах».
  • Мёртвый прокси. Снаружи неотличим от ограничения: сообщения не уходят. Разница в том, что аккаунт совершенно здоров. Правило простое: прежде чем вешать на аккаунт проблему, проверьте сам прокси.
СостояниеКто виноватПройдёт само?Что делать
«Подожди N секунд»темп или чатда, минутыждать целиком и с запасом
Медленный режимчатдаотложить этот чат, остальные работают
Спам-ограничениеаккаунтда, часы–неделиснять с записи, не долбиться
Мёртвая сессияаккаунтнетвойти заново
Заморозкааккаунтнет, никогдаапелляция, и та без гарантий
Мёртвый проксисвязьнетчинить прокси, аккаунт не трогать

Правило, которое всё это связывает

Машина не ставит пауз. Она пишет три независимых признака — состояние сессии, наличие ограничения, состояние связи, — каждый из которых ставится своим источником и снимается своим.

Что поставлено автоматически — снимается автоматически. Единственное исключение — заморозка, потому что она необратима на стороне площадки, а не на нашей.

А пауза остаётся решением человека. Разница не косметическая: машинная пауза вынимала аккаунт из работы надолго, и владелец видел молчание без объяснения. Диагноз, записанный признаком, объясняет, что произошло, и снимается сам, когда причина ушла.

Честные границы

  • Восстановления замороженного аккаунта нет. Ни у нас, ни у кого-либо ещё в виде функции.
  • Проверка ограничения идёт по требованию, а не по расписанию. Фонового обхода флота нет — значит, у части аккаунтов состояние просто не проверялось, и это должно быть видно отдельным числом, а не выдаваться за «всё чисто».
  • Срок снятия ограничения мы не выдумываем. Если площадка даты не назвала — пишем «срок не назван», а не подставляем свою оценку.
  • Апелляция вердикта не даёт. Подтверждается только приём обращения.

Порядок диагностики, если запоминать по шагам

  1. Проверьте связь. Прокси жив? Мёртвый прокси имитирует любой из диагнозов выше.
  2. Проверьте сессию. Вход действителен? Не подключались ли этим аккаунтом откуда-то ещё?
  3. Проверьте заморозку — конфигурацией, а не отправкой. Это единственная проверка, которую нельзя делать «на живую».
  4. Спросите про ограничение у служебного бота — точечно, а не всем флотом сразу.
  5. И только теперь смотрите на чаты. Если предыдущие четыре пункта чисты, а сообщение не ушло — вот тогда дело в чате.

Этот порядок — не наша выдумка и не «лучшая практика из статьи». Это порядок, в котором ошибки разбирает наш собственный код: сначала всё, что может быть про аккаунт и связь, и только в конце — про чат.

Читайте дальше

практика

Один прокси — один аккаунт

разбор

Кто виноват: чат или аккаунт

Откуда факты. Разделение состояний, порядок их проверки, чтение заморозки из конфигурации приложения без отправки, правило «ответ ищем по номеру своего сообщения, а не по дате», отказ считать несостоявшийся обмен диагнозом и три независимых признака здоровья — всё это поведение работающего кода. Границы, включая отсутствие восстановления после заморозки и проверку ограничений только по требованию, названы блоком выше.

Диагноз, а не приговор

CloudSend различает эти состояния одним разбором ошибок и пишет их тремя независимыми признаками.