diff --git a/src/telegram/network-errors.test.ts b/src/telegram/network-errors.test.ts index c7206305b04..4eff7b4da2e 100644 --- a/src/telegram/network-errors.test.ts +++ b/src/telegram/network-errors.test.ts @@ -40,7 +40,7 @@ describe("isRecoverableTelegramNetworkError", () => { }); it("skips broad message matches for send context", () => { - const networkRequestErr = new Error("Network request for 'sendMessage' timed out!"); + const networkRequestErr = new Error("Network request for 'sendMessage' failed!"); expect(isRecoverableTelegramNetworkError(networkRequestErr, { context: "send" })).toBe(false); expect(isRecoverableTelegramNetworkError(networkRequestErr, { context: "polling" })).toBe(true); @@ -49,12 +49,7 @@ describe("isRecoverableTelegramNetworkError", () => { expect(isRecoverableTelegramNetworkError(undiciSnippetErr, { context: "polling" })).toBe(true); }); - it("treats grammY network envelope errors as recoverable in send context", () => { - expect( - isRecoverableTelegramNetworkError(new Error("Network request for 'sendMessage' failed!"), { - context: "send", - }), - ).toBe(true); + it("treats grammY failed-after envelope errors as recoverable in send context", () => { expect( isRecoverableTelegramNetworkError( new Error("Network request for 'sendMessage' failed after 2 attempts."), diff --git a/src/telegram/network-errors.ts b/src/telegram/network-errors.ts index 7413a20e9d2..b670bc48212 100644 --- a/src/telegram/network-errors.ts +++ b/src/telegram/network-errors.ts @@ -33,8 +33,8 @@ const RECOVERABLE_ERROR_NAMES = new Set([ ]); const ALWAYS_RECOVERABLE_MESSAGES = new Set(["fetch failed", "typeerror: fetch failed"]); -const GRAMMY_NETWORK_REQUEST_FAILED_RE = - /^network request(?:\s+for\s+["']?[^"']+["']?)?\s+failed(?:\s+after\b.*)?[!.]?$/i; +const GRAMMY_NETWORK_REQUEST_FAILED_AFTER_RE = + /^network request(?:\s+for\s+["']?[^"']+["']?)?\s+failed\s+after\b.*[!.]?$/i; const RECOVERABLE_MESSAGE_SNIPPETS = [ "undici", @@ -108,7 +108,7 @@ export function isRecoverableTelegramNetworkError( if (message && ALWAYS_RECOVERABLE_MESSAGES.has(message)) { return true; } - if (message && GRAMMY_NETWORK_REQUEST_FAILED_RE.test(message)) { + if (message && GRAMMY_NETWORK_REQUEST_FAILED_AFTER_RE.test(message)) { return true; } if (allowMessageMatch && message) {