Does anyone understand why the Script Data Action in Architect keeps throwing a 504 Gateway Timeout when I run a JMeter script from Singapore targeting the platform_api for real-time interaction checks? We are testing a new self-service flow where the script fetches recent interaction history via GET /api/v2/analytics/interactions to personalize the greeting. Under normal load, it works fine, but as soon as we hit 50 concurrent virtual agents using the genesyscloud JMeter plugin with a ramp-up period of 10 seconds, the data action fails. The error log in the Architect trace shows Error: Request timed out after 30000ms and the response headers include Retry-After: 5. I have checked the API rate limits and we are well below the standard 60 requests/minute limit per agent, so it is not a simple throttling issue. The JMeter config uses HTTP Request Defaults with a Connect Timeout of 10000 and Response Timeout of 30000, which should be enough for a simple GET request. Is there a specific capacity limit for Script Data Actions calling the Analytics API that I am missing? I tried adding a Retry mechanism in the script with a 200ms delay, but it just shifts the failure to a later step. The environment is Genesys Cloud region us-east-1 and we are using the latest Architect version. Any insights on how to handle high-concurrency API calls from within a script without hitting these timeouts would be appreciated. We need this flow to handle at least 200 concurrent calls during peak hours in our Singapore office, so the current 504 errors are blocking our QA sign-off. I have attached the JMeter test plan snippet and the Architect flow JSON for reference if needed. It feels like the WebSocket connection for the script is dropping before the HTTP request completes, but I am not sure how to debug that part of the pipeline.
The root cause here is the analytics endpoint lacking real-time optimization. The /api/v2/analytics/interactions call has strict rate limits and higher latency, which triggers the 504 timeout under high concurrency.
Switch to the interactions API for live data. Use GET /api/v2/interactions/interactions?entityId={id} instead. This endpoint is designed for low-latency concurrent access and prevents gateway timeouts during JMeter spikes.