Бот админ в группе, имеет право принимать новых участников.
Получает update с chat_join_request.
Пишет в ответ сообщение "Привет, ответь на пару вопросов. ..." и кнопки вариантов ответа.
Пишет для теста ещё пару сообщений пользователю.
До сих пор всё ОК.
Пользователь жмёт одну из кнопок, срабатывает обработчик callback_query. Редактирует исходное сообщение, убирает кнопки, дописывает выбранный вариант. Тоже всё ОК.
Но в этом же обработчике не получается уже отправить новое сообщениче от бота через sendMessage:
403: Forbidden: bot can't initiate conversation with a user
Дебажил веб-запросы к Bot API: совершенно идентичные запросы и параметры уходили (успешно) в начале в обработчике chat_join_request, и (уже с ошибкой) в обработчике callback_query — один и тот же метод, один и тот же chat_id.
Это же просто веб-запросы. Почему Telegram со своей стороны принимал одни и отверг другие?
Всё происходит в рамках 30 секунд: запрос на вступление в группу, сразу же ответ от бота с кнопками, кнопка, ошибка.
Бот висит на webhook, использую
Telegraf.js за reverse прокси NGINX.