Это ошибка произошла у меня, когда Zabbix пытался отправить alert:
Zabbix 6.4.2
Sending failed: Bad Request: can't parse entities: Unsupported start tag "" at byte offset 106.
Оказалось дело в том, что Телеграм не смог распарсить имя триггера. И вот почему. Имя триггера имело вид:
OS partition free space < than 100GB on {HOST.NAME}
Проблема тут в знаке «<«. Если убрать/заменить, то сообщения будут отправлены.
А сама «проблема» имеет корни в скрипте отправки сообщения через телеграм.
В моём случае указан режим парсинга «HTML». На этой же странице ниже есть поле Script. Там написан скрипт, который занимается отправкой сообщения. Там есть блок:
... escapeMarkup: function (str, mode) { switch (mode) { case 'markdown': return str.replace(/([_*\[`])/g, '\\$&'); case 'markdownv2': return str.replace(/([_*\[\]()~`>#+\-=|{}.!])/g, '\\$&'); default: return str; } }, ...
Интересно, что блока «html» в кейсах нет, но сам скрипт проверяет, был ли указан html блок. В общем, если надо решить проблему не методом редактирования имени триггера, а кардинально, то надо редактировать скрипт отправки сообщения.