Architect IVR Timeout on Large File Upload via Data Action

Why does this config cause immediate timeout?

  • Environment: Genesys Cloud apac-1
  • Tooling: Terraform 1.8.1, Provider genesyscloud 1.16.2
  • Issue: Data Action (S3 Upload) fails in Architect flow when payload > 2MB
  • Error: 504 Gateway Timeout returned to caller
  • Flow Logic:
  • Get Transcript → Convert to JSON → Invoke Data Action
  • Data Action config: timeout_seconds: 30
  • S3 Bucket: Standard, Region ap-southeast-2
  • Terraform Config:
resource "genesyscloud_routing_utilization_bucket" "upload_bucket" {
name = "upload-bucket"
# ... standard config
}
  • Observation: Works fine for small payloads (<500KB). Fails consistently at 2MB+. Network trace shows request reaches Genesys edge but drops before S3.
  • Question: Is there a hidden limit on Data Action payload size for S3 uploads? Or is the timeout logic different for external calls?
  • Logs attached. Need workaround for bulk transcript archival.
3 Likes

Make sure you increase the timeout_seconds in the Data Action configuration to at least 60, as 30 is insufficient for payloads exceeding 2MB. The 504 indicates the Architect flow terminated before the S3 PUT completed.

Warning: Large file uploads via Data Actions also risk hitting the underlying API payload size limits if not chunked.

The documentation actually says WFM scheduling doesn’t touch Architect flow timeouts, but the previous suggestion to increase timeout_seconds is spot on. Just remember that large payloads might still hit API limits.

504 Gateway Timeout returned to caller

Focus on chunking the data if the timeout bump isn’t enough.

1 Like

You might want to look at chunking the payload before the upload step.

def chunk(data, size=1024*1024):
 return [data[i:i+size] for i in range(0, len(data), size)]

batching avoids the single request timeout and keeps the flow alive.

The easiest way to fix this is to stop sending the whole blob. data actions choke on large payloads. you’ll need to chunk it client-side before the invoke.

504 Gateway Timeout returned to caller

use a pre-processing step to split the JSON.