Download Latest Version @slack_socket-mode@3.2.0 source code.zip (3.6 MB)
Home / @slack_socket-mode@3.2.0
Name Modified Size InfoDownloads / Week
Parent folder
@slack_socket-mode@3.2.0 source code.tar.gz 2026-11-10 2.4 MB
@slack_socket-mode@3.2.0 source code.zip 2026-11-10 3.6 MB
README.md 2026-11-10 2.5 kB
Totals: 3 Items   6.1 MB 8

Minor Changes

  • 7bd6b38: Fix an unhandled promise rejection of undefined that could crash the process when disconnect() raced a pending automatic reconnect (#2656). A reconnect that fails for good still rejects as before, with its cause.

Also, disconnect() called before start() finishes connecting (while fetching the WebSocket URL, waiting to retry it, or during the WebSocket handshake) no longer leaves a connection opening afterwards: start() rejects with the new SMConnectAbortedError instead of hanging or rejecting with undefined.

Calling start() right after disconnect(), while a reconnect is waiting or fetching its URL, now opens one connection instead of two.

Patch Changes

  • 1d3a1af: Fix disconnect() taking 5 seconds or more (#2752). Slack does not close the TCP connection after the close handshake, so disconnect() waited until the pong watchdog gave up and logged "A pong wasn't received". The close handshake now times out after 1 second, the heartbeat stops once the close frame is sent, and a close handshake started by Slack is cleaned up on the next heartbeat tick.
  • 7bd6b38: Fix a 5 to 12 second gap without a connection each time Slack refreshes a Socket Mode connection (#2767). On a disconnect message with the warning or refresh_requested reason, the client now opens the replacement connection right away, without a reconnect backoff, and leaves the old connection open until Slack sends it a disconnect message too, so payloads Slack still sends on it during the switch are received instead of dropped. Each payload is acknowledged on the connection it arrived on. While the replacement is being opened, the current connection keeps serving, and overlapping disconnect messages open one replacement. A replacement that fails for good rejects with its cause, as a failed reconnect does. Any other reason, such as link_disabled, still closes the connection first and reconnects after the usual delay.

Note: during each refresh, a client now holds two connections for about 60 seconds, until Slack sends the old one its own disconnect (refresh_requested, about a minute after the warning). Both count toward Slack's limit of 10 open Socket Mode connections per app, so apps that run many instances at once should leave room for one extra connection per instance while they refresh.

Source: README.md, updated 2026-11-10