Grey Screen Issue with Isaac Sim Headless WebRTC on GCP VM

Summary:
I am attempting to run Isaac Sim 4.2.0 headless via WebRTC on a Google Cloud VM with an NVIDIA L4 GPU (driver 535.183.01, CUDA 12.2) using Docker. The Isaac Sim Docker container initializes and reports “Streaming server started,” but when connecting via WebRTC (http://<VM_IP>:8211/streaming/webrtc-demo/), I only see a grey screen and no interactivity.

Detailed Description:

  • Setup:
    • Platform: GCP VM, Ubuntu 22.04.3 LTS
    • GPU: NVIDIA L4 (Driver: 535.183.01, CUDA 12.2)
    • Isaac Sim Version: Docker image nvcr.io/nvidia/isaac-sim:4.2.0
  • Docker Command Used:
docker run --name isaac-sim \
  --entrypoint bash -it --runtime=nvidia --gpus all \
  -e "ACCEPT_EULA=Y" --rm --network=host -e "PRIVACY_CONSENT=Y" \
  -v ~/docker/isaac-sim/cache/kit:/isaac-sim/kit/cache:rw \
  -v ~/docker/isaac-sim/cache/ov:/root/.cache/ov:rw \
  -v ~/docker/isaac-sim/cache/pip:/root/.cache/pip:rw \
  -v ~/docker/isaac-sim/cache/glcache:/root/.cache/nvidia/GLCache:rw \
  -v ~/docker/isaac-sim/computecache:/root/.nv/ComputeCache:rw \
  -v ~/docker/isaac-sim/logs:/root/.nvidia-omniverse/logs:rw \
  -v ~/docker/isaac-sim/data:/root/.local/share/ov/data:rw \
  -v ~/docker/isaac-sim/documents:/root/Documents:rw \
  nvcr.io/nvidia/isaac-sim:4.2.0
  • Symptoms:

    • Isaac Sim logs indicate successful startup and “Streaming server started”.
    • WebRTC page loads but only shows a persistent grey screen with no visual content or UI interactivity.
  • Troubleshooting Steps Already Tried:

    • Verified the port 8211 is open and accessible from local to VM (nc -vz 34.133.10.121 8211 succeeded).
    • Disabled UFW firewall entirely (sudo ufw disable), no improvement.
    • Added specific UFW rules for port 8211, also no change.
    • Confirmed GPU availability (nvidia-smi shows GPU is idle and available).
    • Environment variables (OMNI_KIT_ALLOW_ROOT=1) correctly set to bypass root restrictions.
  • Relevant Log Excerpts:

Warning: Possible version incompatibility. Attempting to load carb::cudainterop::CudaInterop with version v0.13 against v0.11.
Failed to open [/var/run/utmp]
Active user not found. Using default user [kiosk]
Streaming server started.
[Error] [omni.isaac.ros2_bridge.scripts.extension] ROS2 Bridge startup failed
[Warning] [omni.kit.imgui_renderer.plugin] _createExtendCursor: No windowing.


**Goal:** Resolve the grey screen issue to achieve functional WebRTC streaming from Isaac Sim on the GCP VM.

Any help or advice would be appreciated.

Thanks!

@shilp i am not sure if this is relevant, but i recall another thread in which other users were having issues with Google Cloud and L4 config. if it’s the same issue, the mod and a fellow user offered potential solution/aspects to inspect:

L4, Failed to create any GPU devices, including an attempt with compatibility mode - Omniverse / Isaac Sim - NVIDIA Developer Forums

if this isn’t at all relevant, feel free to discard my post 😊

ended up fixing this by using Omniverse Web Streaming client and changing firewall rules:

Here’s how to create the new rule:

  1. Click the “Create Firewall Rule” button at the top of the firewall rules page in your GCP Console (it’s not shown in your screenshot, but it should be there).
  2. Fill in the details for the NEW rule:
  • Name: Something clear, like allow-omniverse-native-streaming
  • Direction of traffic: Ingress
  • Action on match: Allow
  • Targets: Choose Specified target tags and enter the tag used by your VM (it looks like omniverse-isaac-sim might be the tag used on your instance, based on your first rule). Or, choose All instances in the network if you prefer, but target tags are better practice.
  • Source filter: IP ranges
  • Source IP ranges: Enter Your Home/Office IP address followed by /32. (Search “what is my IP” on Google if you don’t know it. Using your specific IP is more secure than 0.0.0.0/0). Example: 192.0.2.123/32
  • Protocols and ports: Choose Specified protocols and ports
    • Check the box next to tcp and enter the port ranges: 47995-48014, 49003-49006
    • Check the box next to udp and enter the port ranges: 47995-48014, 49003-49006
  1. Click the “Create” button at the bottom of the page.

This new, dedicated rule will specifically allow the native Omniverse Streaming Client to connect to your VM from your location. Once it’s created (it might take a moment to become active), try connecting with the Omniverse Streaming Client application again.

There may have been some other steps that I did that i can’t perfectly recall

1 Like

@shilp your breakdown is appreciated, thanks for circling back!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.