getting 1006: abnormal closure on websocket connections when pushing 200 concurrent calls through architect flow. using jmeter 5.6.2 in asia/singapore region. the flow just has a simple gather input step. no complex logic. why are connections dropping so fast? is there a specific ivr capacity limit per org or region i am missing? here is the thread group config i am using.
This happens because the mismatch between how Zendesk handled static ticket volume versus how Genesys Cloud manages real-time WebSocket state for IVR sessions, leading to resource exhaustion when the load test exceeds the default session timeout thresholds without proper keep-alive signaling. In Zendesk, we simply queued tickets, but in GC, every concurrent call holds an active WebSocket connection that requires specific heartbeats to stay alive, especially under high concurrency in regions like Asia/Singapore where network latency can exacerbate timeout issues. The default gather input step might be timing out before JMeter can process the response, or the WebSocket keep-alive interval is too aggressive for the load. You need to adjust the flow configuration to extend the gather timeout and ensure the JMeter script sends proper WebSocket ping/pong frames to maintain the connection state. Here is a sample configuration adjustment for your Architect flow and JMeter WebSocket sampler to mitigate the 1006 closures:
// Architect Flow Configuration Snippet (Gather Input Step)
{
"id": "gather_input_step_01",
"type": "GatherInput",
"timeoutSeconds": 30, // Increased from default 10 to handle latency
"maxInputLength": 200,
"enableInterrupt": false, // Disable to reduce processing overhead during load test
"speechRecognition": {
"enabled": false // Disable NLP during pure load testing to reduce CPU
}
}
// JMeter WebSocket Sampler Configuration
// Ensure 'Ping Period' is set to 15000ms and 'Timeout' to 60000ms
// Add a WebSocket Keep-Alive timer in the thread group
Adjusting these settings should stabilize the connections during your 200 concurrent call test by aligning the GC session lifecycle with the JMeter load pattern, much like optimizing Zendesk macro execution times did for us during migration.