Устранение неполадок X Bot: отчёты, фильтры, расписания, биллинг
Сводный указатель по всем путям «что-то выглядит не так, что делать». Матрицы из установки / меню-настройки / поддержки также продублированы здесь, чтобы можно было искать на одной странице вместо трёх.
Начните отсюда: откройте
/setup→ ℹ️ О чате в своей группе. Четыре строки на этом экране (ID чата, тариф, расписание, название проекта) — это то, что нужно поддержке для разбора. Скопируйте их прежде, чем делать что-либо ещё.
Порядок самодиагностики
Пройдите эти вопросы по порядку. Большинство проблем решаются на первых двух проверках.
1. Does the bot reply to /setup at all?
├─ No → bot was kicked or demoted from admin → re-promote and retry
└─ Yes → continue.
2. Does /setup → 📊 Reports → ⚡ Generate report now produce a post
within 3 minutes?
├─ No DM, no post → check matrix in §"Reports not arriving"
├─ DM "no posts found" → see §"Filter / no posts"
├─ DM "credit exhausted" → see §"Billing & credits"
├─ Post landed but renders wrong → see §"Render quality"
└─ Post landed correctly → you're fine.
3. Are scheduled reports arriving on time?
├─ No → see §"Schedule not firing"
└─ Yes → all good.
4. X Posts Auto-relay issues?
└─ See §"X Posts Auto-relay"Если ни одна из матриц ниже не привела к решению, перейдите к Эскалации.
Отчёты не приходят
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Бот был активен, внезапно замолчал | Бота молча понизили из админов / выгнали | Telegram → админы группы → повторно назначьте. Если всё ещё тихо — обратитесь в поддержку, возможно сработало автоотключение при исчезновении чата. |
| Ручной запуск отчёта ничего не даёт | Бот — админ, но кредитов ноль | /setup → 💳 Покупка кредитов. Если FREE «100/100 использовано» — дождитесь сброса в начале месяца (1-е число, UTC). Если PRO·кредиты с REMAINING=0 — чат уже автоматически понижен до FREE; /setup → 💳 → 💰 Купить, чтобы пополнить. |
| Ручной запуск отчёта: личное сообщение «постов не найдено» | Фильтр слишком узкий ИЛИ нет постов в окне | /setup → 🎯 Фильтры. Проверьте буквальный запрос к X API на опечатки. Попробуйте расширить или убрать период. |
| Изображение рендерится, но текст пустой | Тайм-аут ИИ-комментария | Повторите запуск; временно. Повторяется — обратитесь в поддержку. |
| Изображение вообще не рендерится | Временный сбой рендера | Повторите запуск. Если сбой повторяется для одного чата — обратитесь в поддержку с ID чата. |
| Ошибка «Unauthorized» / «Forbidden» в личном сообщении | Проблема с токеном X API (на стороне оператора) | Обратитесь в поддержку; пользователь ничего не может исправить. |
Фильтр / нет постов
| Симптом | Вероятная причина | Решение |
|---|---|---|
| В отчёте везде «0 постов» | Фильтр ничему не соответствует в настроенном периоде | Шаг 1: /setup → 🎯 Фильтры — проверьте запрос. Шаг 2: /setup → 📊 Отчёты → 🗑 Очистить период (скользящие 24 ч более щадящие). Шаг 3: расширьте фильтры (добавьте резервный кэштег, уберите строгие группы ключевых слов). |
| В лидерборде пользователи, которых я не добавлял в фильтр | Фильтры аддитивны — засчитывается любой, кто пишет отслеживаемый кэштег/ключевое слово | Чтобы требовать и аккаунт, и кэштег одновременно, используйте /set_x_filtering name from:@x cashtags:$Y (именованный фильтр, «И» между категориями). |
| Один пользователь заспамил лидерборд | Бот правомерно оценил каждый его пост | /setup → 🎯 Фильтры → 🙈 Игнорировать → ➕ Добавить @spammer — они исключаются из результатов после выборки. |
| Кэштег со странными символами не совпадает | X API нормализует регистр; ведущие/замыкающие пробелы важны при вводе фильтра | Добавьте заново через /setup → 🎯 Фильтры → 💵 Кэштеги → ➕ Добавить — без $, без пробелов. |
Кэштег с цифрой в начале (например, $1INCH) не отслеживается | Поведение поиска X API с ведущими цифрами может быть непоследовательным | Используйте как ключевое слово вместо кэштега: "$1INCH" в 🔍 Ключевых словах с кавычками. |
| Выбор «Лучшего твита» кажется странным | ИИ-дедупликация недавно выбрала похожий твит | Дождитесь следующего цикла. Если проблема повторяется — сообщите, промпт настраиваемый. |
Расписание не срабатывает
| Симптом | Вероятная причина | Решение |
|---|---|---|
Расписание «отклонено» с FREQUENCY_ERROR | Cron пытается срабатывать чаще, чем раз в 12ч | Проверка интервала обеспечивает промежутки ≥ 12ч. Сообщение об ошибке называет конфликтующую пару часов. Выберите более широкий промежуток. |
| Расписание задано, но отчёт не пришёл вовремя | Запланированный cron срабатывает в пределах ~1–2 мин от тика | Подождите 5 минут после настроенного времени, прежде чем считать это сбоем. Редкие задержки со стороны платформы случаются, но проходят сами. |
| Cron с несколькими срабатываниями срабатывает только раз | Список часов не по порядку или с дубликатом | cron(0 14,22 ? * * *) — часы по возрастанию. cron(0 22,14 ? * * *) отклоняется. |
| На staging расписание срабатывает каждые 5 минут, на прод — нет | Разное пространство имён RULE_NAME | Убедитесь, что проверяете нужное окружение. /setup → ℹ️ О чате показывает окружение. |
| Часовой пояс кажется неверным | Расписание по замыслу в UTC | Переведите своё локальное время в UTC. Поле ввода расписания в отдельных случаях также принимает именованные часовые пояса — проверьте описание поля. |
| Автотрансляция X-постов срабатывает, а отчёты — нет | Разные cron-расписания | Автотрансляция X-постов опрашивает каждые 5 минут; отчёты используют основной cron чата (обычно ежедневный). Они независимы. |
Качество рендера
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Свой заголовок / цвет откатились за ночь | Кэш инвалидирован, следующая выборка покажет новое значение | Дождитесь одного цикла отчёта (~1 день). Кэш рендера пересобирается при следующей выборке. |
| Логотип размытый / обрезанный | Исходное изображение слишком маленькое или не квадратное | Загрузите заново, ≥ 512×512 PNG, квадратные пропорции. /setup → 🎨 Настройка → 🖼 Логотип. |
| Имя пользователя выходит за края в изображении лидерборда | Длинное отображаемое имя | Бот обрезает многоточием; исправление не нужно, если не повторяется. |
Текст лучшего твита показывает сырой <a href> HTML | Несовпадение режима парсинга Telegram | Баг — сообщите с URL твита. |
| Разное изображение отчёта против превью в Telegram | Telegram кэширует первые байты изображения по URL; подписанные URL включают метку времени, так что каждая выборка уникальна | Не должно происходить; если происходит, перегенерируйте через /recreate. |
Автотрансляция X-постов
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Трансляция пересылает сразу тред из 6 твитов | Ответы на собственные твиты обходят exclude=replies X API | /setup → 📡 Автотрансляция X-постов → @аккаунт → выключите ☐ Продолжения треда. Тогда бот оставит только начало. |
| Трансляция остановилась в середине дня | Достигнут дневной лимит | Экран отдельной трансляции показывает Today: N/N forwarded. Нажмите ✏️ Лимит и увеличьте. Сброс в полночь UTC. |
| Трансляция показывает ⏸ Пауза, хотя я её не ставил | Автопауза при ошибке «чат исчез» в Telegram (выгнали / заблокировали / чат обновился) | Бот также остановил расписание опроса. Чтобы восстановить: /setup → 📡 Автотрансляция X-постов → @аккаунт → ▶️ Возобновить. Если всё ещё не работает — возможно, у чата изменился ID (апгрейд до супергруппы) — заново добавьте бота в новом чате. |
| Первый опрос трансляции переслал сразу 50 постов | Так быть не должно — при инициализации должен только устанавливаться LAST_POST_ID без пересылки | Если видите это — сообщите. Исправление добавлено в 2026-04, должно предотвращать это. |
| Цитаты продолжают появляться, несмотря на переключатель | У X API нет серверного exclude=quotes — бот фильтрует на своей стороне после выборки | Переключатель работает, но вы всё равно платите за цитаты, возвращённые API. Экономия только косметическая. |
| Трансляция опрашивает бесконечно, хотя чат удалён | Старая версия трансляции — автоочистка добавлена в 2026-05 | Попросите поддержку принудительно остановить трансляцию. Новые развёртывания самоочищаются. |
Биллинг и кредиты
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Купил кредиты, баланс не изменился | Webhook Stripe задержан | Подождите 5 минут. Если всё ещё неверно — обратитесь в поддержку с квитанцией Stripe и ID чата. |
| Количество кредитов выше, чем я ожидал | Трансляция опрашивала несколько раз за период, когда отслеживаемый аккаунт был активен | Автотрансляция X-постов списывает за каждый пост. Нажмите на трансляцию → проверьте счётчик Today. |
| Перерасход на PRO·подписке, хотя постил мало | Другая активность в чате (трансляции, отчёты, повторные попытки выборки) | /setup → 💳 Покупка кредитов → Использование за месяц. Сравните с метрируемым списанием. |
| С чата FREE списали деньги | Не должно происходить — у FREE нет клиента Stripe | Сообщите немедленно; это биллинговый баг. |
| Подписка показывает «отменена», хотя я не отменял | Отмена Stripe может сработать из-за неудачного автопродления по карте | Проверьте почту на квитанции Stripe, обновите карту через /setup → 💳 → 🛠 Управление подпиской (портал клиентов Stripe). |
| Отменил подписку, всё ещё PRO | Отмена в конце периода: PRO до конца оплаченного периода | Ожидаемо. Вернётся на FREE в конце следующего расчётного цикла. |
Публичный дашборд
| Симптом | Вероятная причина | Решение |
|---|---|---|
| Проекта нет на xbot.ninja | Не достигнуты пороги (≥ 300 топ-счёт, ≥ 5 постов, ≥ 2 активных пользователя за этот месяц) | Прямой URL всё равно работает. Дождитесь достижения метрики порога. Соло-KOL настройки намеренно скрыты из витрины. |
| Проект на xbot.ninja, но логотип отсутствует | Логотип не был загружен, или загрузка не удалась | /setup → 🎨 Настройка → 🖼 Логотип. Отправьте квадратный PNG. |
| Публичный URL показывает старое название проекта | Обновление на следующем цикле отчёта | Переименуйте через /setup → 🎨 Настройка → 🏷 Название. URL-слаг + карточка обновятся при следующем срабатывании отчёта. |
| URL выдаёт 404 | Чат удалён без возможности восстановления ИЛИ пороги ещё не достигнуты, поэтому витрина его скрывает | Проверьте ID чата через /setup → ℹ️ О чате. Протестируйте прямой URL https://xbot.ninja/?chatId=<id>. |
Эскалация
Если матрицы выше не решили проблему, обратитесь в поддержку по шаблону ниже.
Project: <your project name>
Chat ID: <from /setup → ℹ️ About>
Plan: FREE / PRO·credits / PRO·sub
What's wrong: <1–2 sentences>
What you tried: </setup → … → … steps you ran>
When it broke: <approx UTC time>
Recent change: <any new filter / schedule / payment in the last 24 h>Одного ID чата достаточно, чтобы дать поддержке 80% информации для разбора — пожалуйста, всегда указывайте его.
Куда обращаться:
- Общая поддержка: контактная форма bws.ninja
- GitHub issues (для тех, кто в теме open-source): bws-api-telegram-xbot/issues
- Прямой Telegram: @BlockchainWebServices
Время ответа по степени серьёзности:
- Критично (бот офлайн на всей платформе, сбои биллинга): 1 рабочий час в пересечении рабочего времени ЕС+США
- Высокий приоритет (не доставляется отчёт одного чата): в тот же рабочий день
- Обычный (вопросы по функциям, помощь с настройкой): 1–2 рабочих дня
Полезные диагностические команды
| Команда | Что показывает |
|---|---|
/setup → ℹ️ О чате | ID чата, тариф, расписание, проект — скопируйте это дословно в поддержку |
/setup → 🎯 Фильтры | Буквальная строка запроса к X API |
/setup → 💳 Покупка кредитов → 📊 Использование за месяц | Счётчики fetched_posts за день и месяц — выявляют тихие сбои (много попыток, ноль постов → вероятно, ошибки 402) |
/setup → 📡 Автотрансляция X-постов → @аккаунт | Состояние отдельной трансляции (активна/на паузе, пересылки за сегодня, дневной лимит) |
/get_chatid | Только ID чата (однострочник, если «О чате» — избыточно) |
Что дальше
- Установка — чистая переустановка, если ничего другое не помогло
- Меню /setup — полный справочник по меню
- Тарифы — устранение неполадок со стороны биллинга
- Поддержка — FAQ + контакты для эскалации