From d8b102fbf98d3fea9736c89d6aaa633a4dca4c2b Mon Sep 17 00:00:00 2001 From: Gabriel Radureau Date: Sat, 9 May 2026 13:06:40 +0200 Subject: [PATCH] server: don't reject Telegram updates with unknown fields DisallowUnknownFields rejected real Telegram payloads (entities, from, date, etc. that our minimal structs don't cover). Lenient decode is the right default for an upstream webhook we don't control. --- server.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/server.go b/server.go index df35b83..52f8560 100644 --- a/server.go +++ b/server.go @@ -59,9 +59,10 @@ func (s *Server) botWebhook(w http.ResponseWriter, r *http.Request) { } var update Update - dec := json.NewDecoder(r.Body) - dec.DisallowUnknownFields() - if err := dec.Decode(&update); err != nil { + // NOTE: pas de DisallowUnknownFields — Telegram ajoute des champs + // (entities, sticker, photo, forum_topic…) au fil du temps. On reste + // tolérant et on n'extrait que ce dont on a besoin. + if err := json.NewDecoder(r.Body).Decode(&update); err != nil { http.Error(w, "bad update payload", http.StatusBadRequest) return }