From 071e7610d6db9a811e9eec75b4a42df0f30ac19a Mon Sep 17 00:00:00 2001 From: Ayaan Zaidi Date: Wed, 29 Apr 2026 13:50:22 +0530 Subject: [PATCH] fix(telegram): bound outbound request timeouts --- extensions/telegram/src/request-timeouts.test.ts | 9 ++++++++- extensions/telegram/src/request-timeouts.ts | 16 ++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/extensions/telegram/src/request-timeouts.test.ts b/extensions/telegram/src/request-timeouts.test.ts index 3ba51c0a655..dee37daa09d 100644 --- a/extensions/telegram/src/request-timeouts.test.ts +++ b/extensions/telegram/src/request-timeouts.test.ts @@ -12,8 +12,15 @@ describe("resolveTelegramRequestTimeoutMs", () => { expect(resolveTelegramRequestTimeoutMs("getupdates")).toBe(45_000); }); + it("bounds outbound delivery methods", () => { + expect(resolveTelegramRequestTimeoutMs("sendmessage")).toBe(20_000); + expect(resolveTelegramRequestTimeoutMs("sendchataction")).toBe(10_000); + expect(resolveTelegramRequestTimeoutMs("editmessagetext")).toBe(15_000); + expect(resolveTelegramRequestTimeoutMs("sendphoto")).toBe(30_000); + }); + it("does not assign hard timeouts to unrelated Telegram methods", () => { - expect(resolveTelegramRequestTimeoutMs("sendmessage")).toBeUndefined(); + expect(resolveTelegramRequestTimeoutMs("answercallbackquery")).toBeUndefined(); expect(resolveTelegramRequestTimeoutMs(null)).toBeUndefined(); }); }); diff --git a/extensions/telegram/src/request-timeouts.ts b/extensions/telegram/src/request-timeouts.ts index 3727d410b52..fba82d411ba 100644 --- a/extensions/telegram/src/request-timeouts.ts +++ b/extensions/telegram/src/request-timeouts.ts @@ -2,8 +2,24 @@ const TELEGRAM_REQUEST_TIMEOUTS_MS = { // Bound startup/control-plane calls so the gateway cannot report Telegram as // healthy while provider startup is still hung on Bot API setup. deletewebhook: 15_000, + deletemessage: 15_000, + editforumtopic: 15_000, + editmessagetext: 15_000, + getchat: 15_000, + getfile: 30_000, getme: 15_000, getupdates: 45_000, + pinchatmessage: 15_000, + sendanimation: 30_000, + sendaudio: 30_000, + sendchataction: 10_000, + senddocument: 30_000, + sendmessage: 20_000, + sendmessagedraft: 20_000, + sendphoto: 30_000, + sendvideo: 30_000, + sendvoice: 30_000, + setmessagereaction: 10_000, setwebhook: 15_000, } as const;