WebSocket 1006 Abnormal Closure: Connection reset by peer. The Node.js client can’t keep the multiplex stream alive right after pushing the third channel type reference into the routing matrix, and the buffer overflow verification pipeline is definitely choking on the concurrent stream limits. Gateway doesn’t even parse the atomic SUBSCRIBE payload before dropping the connection.
The 1006 closure usually happen when the gateway drop the keepalive heartbeat before the subscription queue flush. In the java sdk wrapper, the ws.keepAliveInterval defaults to 25 seconds which break the multiplex buffer. Change it to 40 seconds in the connector config.
WebSocketConfig config = new WebSocketConfig.Builder()
.keepAliveInterval(40000)
.maxSubscriptions(5)
.build();
Also check the routing.matrix.channelLimit in the platform admin. If it’s set below 3, the gateway cuts the stream when the third reference pushes through. The audit trail shows ...channel=multiplex-interaction-st then just drops. Might be mixing up the websocket buffer with the kafka partition count, but lowering the stream.concurrentThreshold to 2 usually stops the reset.
Restart the worker pod after applying. Just leave the threshold at 2. The buffer won’t overflow after that.
Swap the keepalive for a pingTimeout override in the client config.
const ws = new WebSocket(url, { pingTimeout: 4500 });
FWIW, it’s usually just a wrap-up code timeout on the gateway side causing the 1006 drop. YMMV with the multiplex buffer. [ERROR] ws.close(1006, "abnormal cl