Potential Issues#

OVAS API banner for troubleshooting streaming issues

There are two primary issues that are frequently seen:

Black Screen on Start-Up#

This can be caused by shader compilation during start-up, which can take 5-10 minutes, especially on a new cluster where the shared cache hasn’t been populated yet. This delay can also occur when new shaders need to be compiled for the first time. Although it may look like the session has failed, the application should start rendering once the shaders are compiled and cached. Future sessions will load significantly faster. An easy test is to wait 10-15 minutes, allowing the shaders to compile, and then seeing if the problem persists.

An alternative cause could be if the GPU Worker Nodes are unable to utilize the shared shader cache. This could be due to a network, configuration, or service issue, preventing the shaders from being properly cached and accessed across the cluster.

Network Routing#

It is critical that you ensure there is a viable network route between the GPU Worker Node and the client. This is complicated by the use of UDP for the media and data communication. Many corporate firewalls block UDP traffic.

Omniverse Kit App Streaming streams WebRTC media over UDP only: there is no TURN server or TCP media fallback. A client on a network that blocks outbound UDP to the media port cannot connect regardless of how the cluster is configured; the resolution must be a firewall or proxy exception on the client network. This often presents as a black screen, because the TCP signaling channel connects while the UDP media traffic is dropped.

To confirm, open chrome://webrtc-internals (or the equivalent in your browser) during a connection attempt: if the signaling connection succeeds but no ICE candidate pair reaches the succeeded state, UDP is being dropped between the client and the load balancer. See the port reference for the ports and ranges involved.

If clients behind restrictive networks are a recurring requirement, Omniverse Streaming on NVCF negotiates transport and falls back to TCP or TLS through a TURN server; see the migration guide for Kit App Streaming deployments.