From c3fadc874f076cd349aa0fbda7f6c6fd8934c86c Mon Sep 17 00:00:00 2001 From: Hideaki Terai Date: Thu, 9 Apr 2026 11:17:00 +0900 Subject: [PATCH] Fix process crash when WebClient.js throws network error on RTM reconnect MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit uncaughtException ハンドラが RTMClient.js 由来のエラーしか握りつぶしておらず、 WebClient.js から来る ENOTFOUND などのネットワークエラーが throw されてプロセスが クラッシュしていた問題を修正。isNetworkError() で判定してリトライ処理に繋げる。 Co-Authored-By: Claude Sonnet 4.6 --- lib/core.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/lib/core.js b/lib/core.js index 8bf79bf..81fdc63 100644 --- a/lib/core.js +++ b/lib/core.js @@ -257,6 +257,25 @@ core.start = async (commander) => { return; } + // ネットワークエラー (WebClient.js からの DNS/接続エラー) はリトライ対象 + if (isNetworkError && isNetworkError(error)) { + errorCount++; + if (now - lastErrorTime > ERROR_THROTTLE_MS) { + if (errorCount > 1) { + console.error(`RTM network errors occurred (${errorCount} times since last report)`); + } else { + console.error("RTM network error caught:", error.message || "Unknown network error"); + } + lastErrorTime = now; + errorCount = 0; + } + if (!isReconnecting) { + isReconnecting = true; + scheduleRtmRestart(); + } + return; + } + // その他の予期しないエラーは通常通り処理 throw error; });