Trying to understand why my WebRTC WebSocket connections are being rejected with a 403 Forbidden error specifically when I ramp up the concurrency in my load tests. We are deploying Genesys Cloud on AWS via Edge BYOC in the Asia/Singapore region. The setup works perfectly fine with low concurrency, like 5 or 10 threads, but as soon as I push the JMeter script to 50 concurrent users, the handshake fails consistently.
The environment is Genesys Cloud v24.4.0. I am using the standard WebRTC SDK for the client side, but for the load test, I am simulating the WebSocket connection directly using JMeter 5.6.2 to avoid browser overhead. The goal is to test the signaling capacity of the Edge deployment before we go live with a major client.
Here is the error snippet I am seeing in the JMeter debug sampler:
{
"status": 403,
"error": "Forbidden",
"message": "WebSocket handshake failed. Invalid or missing authorization token."
}
I have verified that the JWT tokens generated for the test are valid and not expired. The tokens are generated using the same private key used in production. The issue seems to be related to how the Edge service handles concurrent WebSocket upgrade requests. I suspect there might be a rate limit on the WebSocket upgrade path or a connection pool limit on the Edge proxy that is not documented clearly for BYOC setups.
I have checked the network logs and see that the initial HTTP request for the upgrade is sent, but the response comes back as 403 almost immediately when the thread count increases. This does not happen with lower concurrency. Is there a specific configuration in the Edge deployment or the Genesys Cloud admin settings that limits the number of simultaneous WebSocket handshakes? I need to know if this is a soft limit I can request an increase for, or if I am hitting a hard architectural constraint of the BYOC offering.