Why does this setting… cause immediate WebSocket disconnects when ramping to 100 concurrent threads in JMeter? Using Genesys Cloud platform API v2 with standard load test config.
Getting 1006 Abnormal Closure errors on /api/v2/communication/websocket endpoints. No 429s or auth failures, just raw connection drops. Happens consistently after 15 seconds of steady state. Running from Singapore region against US-East tenant.
Config:
- JMeter 5.6.2
- WebSocket Samplers plugin 1.5
- Keep-alive enabled
- Payload size ~2KB
Any known limits on concurrent WebSocket connections per tenant? Or is this a client-side timeout issue in the sampler?
Check your JMeter thread group configuration for aggressive socket creation during the ramp-up phase. The WebSocket disconnects are likely not caused by the Genesys Cloud platform limits, but by how the test script handles connection teardown and concurrency spikes. When ramping to 100 threads instantly, you risk exhausting local file descriptors or hitting intermediate proxy limits before the platform even processes the request.
Adjust the “Ramp-Up Period” in your Thread Group to spread the load over 30-60 seconds. Also, ensure each thread has a dedicated WebSocket sampler with proper keep-alive settings disabled if you are simulating distinct users. The 1006 Abnormal Closure often indicates the server dropped the connection due to inactivity or malformed frames from overlapping requests. Review the JMeter logs for any java.net.SocketException errors during the initial burst.
Note: Ensure your service account has the websocket:read scope, as missing permissions can sometimes manifest as silent drops rather than explicit auth errors in load testing scenarios.
Enable WebSocket keep-alive in the JMeter WebSocket Sampler configuration. The default timeout is often too aggressive for cross-region latency, especially from Singapore to US-East. Set the Ping Interval to 25000 ms and Ping Timeout to 5000 ms. This forces periodic heartbeat frames that prevent intermediate proxies from dropping idle connections before the 15-second mark.
Also, verify the Connection Timeout and Response Timeout are set to at least 30000 ms. Genesys Cloud’s WebSocket implementation expects sustained connectivity for streaming data. If the client stops sending frames, the server assumes the connection is stale and closes it with a 1006 code. This is distinct from rate limiting.
Ensure the JMeter test plan uses the WebSocket Open sampler followed by WebSocket Ping samplers in a loop, rather than relying solely on the initial handshake.
Warning: Do not disable the ping interval. Without it, carrier-grade NAT devices in the Singapore region will terminate the TCP stream, causing the same disconnects regardless of Genesys Cloud settings.