Skip to content

Fix process crash on network error during RTM reconnect#121

Merged
hideack merged 1 commit into
masterfrom
feature/rtm-reconnect-on-resume
Apr 9, 2026
Merged

Fix process crash on network error during RTM reconnect#121
hideack merged 1 commit into
masterfrom
feature/rtm-reconnect-on-resume

Conversation

@hideack
Copy link
Copy Markdown
Owner

@hideack hideack commented Apr 9, 2026

Summary

  • uncaughtException ハンドラが RTMClient.js 由来のエラーしか握りつぶしておらず、WebClient.js から来る ENOTFOUND などの DNS/ネットワークエラーが throw されてプロセスがクラッシュしていた問題を修正
  • isNetworkError() で判定し、ネットワークエラーの場合は scheduleRtmRestart() を呼んで既存の exponential backoff リトライ処理に繋げるよう変更
  • PC スリープ復帰後にネットワークが戻るまで、プロセスを落とさずリトライし続けるようになる

再現ケース

PC スリープ復帰直後、RTM 再接続リトライを2〜3回繰り返した後に以下のエラーでプロセスが終了していた:

Unable to start RTM: A request error occurred: getaddrinfo ENOTFOUND slack.com
Retrying RTM connection in 5s... (attempt 1)
Unable to start RTM: A request error occurred: getaddrinfo ENOTFOUND slack.com
Retrying RTM connection in 10s... (attempt 2)
Error: A request error occurred: getaddrinfo ENOTFOUND slack.com
    at WebClient.<anonymous> (/.../@slack/client/dist/WebClient.js:578:31)

Test plan

  • PC スリープ → 復帰後もプロセスが落ちずに RTM 再接続が成功することを確認
  • ネットワーク断 → 復旧後に自動再接続されることを確認

🤖 Generated with Claude Code

…nect

uncaughtException ハンドラが RTMClient.js 由来のエラーしか握りつぶしておらず、
WebClient.js から来る ENOTFOUND などのネットワークエラーが throw されてプロセスが
クラッシュしていた問題を修正。isNetworkError() で判定してリトライ処理に繋げる。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@hideack hideack merged commit df2b6b8 into master Apr 9, 2026
2 checks passed
@hideack hideack deleted the feature/rtm-reconnect-on-resume branch April 9, 2026 03:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant