Как проявляется
При отправке запроса через Telegram-бот OpenClaw вместо ответа появляется сообщение об ошибке баланса, хотя в WebUI ответ приходит нормально и баланс не исчерпан.
Из-за чего возникает
OpenClaw применяет функцию sanitizeUserFacingText() к ответам, отправляемым в Telegram, которая ошибочно распознаёт обычный текст с упоминанием слов «billing», «credits», «payment», «plan» и числа «402» как ошибку баланса и заменяет ответ на сообщение об ошибке. В WebUI такой фильтрации нет, поэтому там ответ виден корректно.
Как исправить
- Получите исходный код OpenClaw, запущенный в вашем окружении.
- Найдите функцию sanitizeUserFacingText(), которая применяется к исходящим сообщениям Telegram.
- Примените патч, отключающий или корректирующий фильтрацию, чтобы она не срабатывала на обычные ответы, содержащие слова из списка (например, отключить проверку на “billing” и “credits” в обычном тексте).
- Перезапустите OpenClaw с внесёнными изменениями.
- Проверьте, что Telegram-бот теперь корректно передаёт ответы без ложных ошибок.
Пример патча и обсуждение доступны в issue #11359 и PR #12988 на GitHub OpenClaw.
Если вы используете официальный релиз, обновитесь до версии, включающей исправление из PR #12988, где баг уже устранён.
Как не столкнуться снова
Обновляйте OpenClaw до версии с исправлением #12988, чтобы избежать ложных срабатываний фильтрации сообщений в Telegram-боте.
Источник
Разбор основан на обсуждении в репозитории проекта: issue #11359.
Другие типичные проблемы — в разделе ошибок и решений, а базовая настройка разобрана в первом запуске.