fix(telegram): add detailed error logging for message send failures

- Log target chat ID/username and error details when sending fails
- Log both HTML and plain text fallback failures
- Include is_username flag for debugging
This commit is contained in:
Vishnuvardhan Reddy 2026-02-26 14:31:36 +00:00
parent 9ee43ffcd3
commit 55a51766ac

View file

@ -232,12 +232,21 @@ func (c *TelegramChannel) Send(ctx context.Context, msg bus.OutboundMessage) err
tgMsg.ParseMode = telego.ModeHTML tgMsg.ParseMode = telego.ModeHTML
if _, err = c.bot.SendMessage(ctx, tgMsg); err != nil { if _, err = c.bot.SendMessage(ctx, tgMsg); err != nil {
logger.ErrorCF("telegram", "HTML parse failed, falling back to plain text", map[string]any{ logger.ErrorCF("telegram", "Failed to send message", map[string]any{
"error": err.Error(), "target": msg.ChatID,
"is_username": isUsername,
"error": err.Error(),
}) })
tgMsg.ParseMode = "" tgMsg.ParseMode = ""
_, err = c.bot.SendMessage(ctx, tgMsg) _, err = c.bot.SendMessage(ctx, tgMsg)
return err if err != nil {
logger.ErrorCF("telegram", "Failed to send message (plain text fallback also failed)", map[string]any{
"target": msg.ChatID,
"is_username": isUsername,
"error": err.Error(),
})
return fmt.Errorf("failed to send telegram message to %s: %w", msg.ChatID, err)
}
} }
return nil return nil