Pushed the queue config through the pipeline yesterday. Everything’s looking solid in Architect until the recording toggle flips on. Sydney agents are dropping the second they try to answer inbound calls routed to the compliance queue. Console dumps RTCPeerConnection: state changed to failed right after ICE candidate gathering timed out (srflx). Signal handshake completes fine, but media never routes.
Using @genesys/web-sdk v2024.9.1 in the wrapper. STUN servers are pointing to the default APAC edge, but the TURN fallback isn’t kicking in for the AU region. Network trace shows the candidate exchange stops dead at a=candidate:2 1 udp 1677729535 10.128.4.5 5001 typ srflx. Looks like the relay server for mypurecloud.com.au is rejecting the binding request when the recordingsEnabled flag is set to true.
Tried bypassing the queue recording setting and routing through a standard task flow instead. Media connects instantly. Switch back to the compliance queue with ACMA retention rules attached and the softphone drops again. Latency sits around 180ms from Melbourne to the edge, which shouldn’t kill the handshake. Candidate timeout hits exactly at 8000ms every single time. Basically doing jack all to fix the media path.
Environment details:
- Org region: APAC
- SDK: @genesys/web-sdk 2024.9.1
- Architect flow: Standard IVR → Queue (recordingsEnabled: true) → Agent
- Error:
WebRTC connection failed: ICE candidate gathering timed out after 8000ms - Network: Corporate VPN disabled, direct fiber to Telstra
Already spun up a custom TURN relay in Sydney and updated the window.GenesysCloudWebRTC config object. Still hitting the same wall. Signaling channel stays open but the SDP exchange never resolves to a working candidate. Media path just flatlines.
Logs show the STUN server responding with 400 Bad Request on the binding response. Edge might be choking on the payload format when the recording service tries to intercept the media stream. ACMA compliance requires the recording toggle to stay active for every interaction.
{
"error": "ICE_CANDIDATE_GATHERING_FAILED",
"candidateType": "srflx",
"timeoutMs": 8000,
"region": "ap-southeast-2",
"recordingEnabled": true,
"stunResponse": 400
}