Can anyone clarify the expected behavior for WebSocket connections when using Genesys Cloud WebRTC softphone under load?
I am running a JMeter test script to validate capacity. The script creates 500 virtual users, each logging in and attempting to register a WebRTC session. At around 450 concurrent users, the success rate drops significantly. The client logs show WebSocket closed code 1006 immediately after the handshake. There are no errors in the Genesys Cloud server logs, but the JMeter reports show a spike in response times before the failures start.
The environment is a single organization with default settings. I am using the genesys-cloud-web-sdk version 2.15.0. The JMeter config uses a Thread Group with 500 threads, a ramp-up time of 60 seconds, and a loop count of 1. The request is simple: authenticate, then open the WebSocket connection for the softphone.
“The WebRTC client maintains a persistent WebSocket connection for signaling. Connection limits are based on the organization’s licensing tier.”
The documentation mentions licensing limits, but our tier should support at least 2,000 concurrent agents. I am confused why it fails at 500. Is there a hidden rate limit on the WebSocket endpoint? Or is it a resource constraint on the load generator?
I have checked the API rate limits for the authentication endpoint, and those are fine. The issue seems specific to the WebSocket layer. I tried reducing the concurrency to 200, and it works perfectly. Increasing to 300 causes intermittent failures. At 500, it is almost 100% failure after the initial ramp-up.
The error is consistent across different regions. I tested in us-east-1 and us-west-2. The result is the same. I am not sure if this is a configuration issue in JMeter or a limit in Genesys Cloud. I have attached the JMeter plan file for reference. The thread group settings are standard. I am using the HTTP Request sampler for login and a custom WebSocket sampler for the softphone connection.
Any advice on how to troubleshoot this? Should I look at network settings or Genesys Cloud settings? I am new to this, so I might be missing something obvious. The goal is to ensure the system can handle peak load without dropping connections. I need to know if 500 concurrent users is too much for a standard setup or if there is a bug in the SDK.