Stuck on WebRTC negotiation failing with RTCIceConnectionState: failed when initiating a screen pop from ServiceNow. The Genesys Cloud WebRTC client is running in an iframe within the ServiceNow portal, and ICE candidates are not traversing the NAT correctly despite STUN servers being configured. Payload sent to the Data Action:
{
"conversationId": "conv-12345",
"userId": "user-67890",
"action": "initiate_webrtc"
}
Any insights on why the ICE connection is dropping immediately after the offer is exchanged?
Have you tried adjusting the STUN server configuration in the Genesys Cloud admin console? The EU-West-1 region sometimes has specific firewall rules that block standard STUN ports.
- Check your Data Action timeout settings. If the ICE gathering takes longer than 30 seconds, the request might drop before candidates are collected.
- Verify the iframe policy. ServiceNow portals often block WebSocket connections if the
Content-Security-Policy header is too strict. Add wss://*.genesys.cloud to your allowed connect-src.
- Inspect the JMeter load test results if available. High concurrent WebSocket connections can saturate the STUN servers. Try reducing the thread count to see if ICE succeeds at lower volumes.
The payload looks correct, but the environment restrictions are usually the culprit. Make sure your JMeter config simulates the actual user load to catch capacity issues early.