Trying to understand the exact rate limit behavior for the /api/v2/platform/websocket endpoint when pushing high concurrent connections through our Singapore BYOC environment. We are running a JMeter 5.6.2 script designed to simulate 300 simultaneous WebRTC softphone connections to validate our capacity planning before the next peak season. The setup involves a simple loop controller that handles OAuth token generation followed by the WebSocket handshake. The initial burst of 50 connections succeeds without any issues, establishing stable media streams and signaling channels. However, once the concurrent thread count hits roughly 120 active sessions, the API throughput drops significantly and we start seeing a flood of 429 Too Many Requests responses. The error payload specifically mentions that the client has exceeded the rate limit for the platform websocket resource. I have checked the standard documentation which suggests a baseline limit, but it is unclear if this is a global limit per organization or a per-edge limit. Our BYOC edge is located in ap-southeast-1, and we are hitting this ceiling much faster than expected for a single tenant. The JMeter config uses a constant throughput timer set to ramp up 5 threads per second, but the 429s appear almost immediately after the 120 mark, suggesting a hard cap rather than a gradual throttle. We are not seeing any 503s or connection timeouts, just strict 429 rejections on the handshake request. Is there a way to request a higher concurrency limit for the websocket endpoint specifically for load testing purposes? Or is there a recommended pattern for staggering WebSocket connections to avoid hitting this wall? We need to accurately test our system’s ability to handle 500 concurrent users, but the current API limits are preventing us from reaching that state. Any insights into how the rate limiting algorithm works for websocket handshakes versus standard REST calls would be helpful. We suspect the websocket upgrade request is being counted differently than the subsequent data frames, but the documentation is vague on this specific interaction pattern.
Make sure you…
- adjust the JMeter concurrent thread count to stay within the BYOC WebSocket limit
- verify the OAuth token refresh logic isn’t triggering extra API calls