Isaac Sim 6.0.0 WebRTC livestream fails with `StreamSdkException 800b0000` on a headless RTX 4090 Docker server

Important: Isaac Sim support

Note: For Isaac Sim support, the community is gradually transitioning from this forum to the Isaac Sim GitHub repository so that questions and issues can be tracked, searched, and resolved more efficiently in one place. Whenever possible, please create a GitHub Discussion or Issue there instead of starting a new forum topic.

Note: For any Isaac Lab topics, please submit your topic to its GitHub repo ( GitHub - isaac-sim/IsaacLab: Unified framework for robot learning built on NVIDIA Isaac Sim · GitHub ) following the instructions provided on Isaac Lab’s Contributing Guidelines ( Contribution Guidelines — Isaac Lab Documentation ).

Please provide all relevant details below before submitting your post. This will help the community provide more accurate and timely assistance. After submitting, you can check the appropriate boxes. Remember, you can always edit your post later to include additional information if needed.

6.0.0
5.1.0
5.0.0
4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 24.04
Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: NVIDIA GeForce RTX 4090
  • Driver Version: 580.126.09

Topic Description

Isaac Sim 6.0.0 WebRTC livestream fails with `StreamSdkException 800b0000` on a headless RTX 4090 Docker server

Detailed Description

(Describe the issue in detail, including what you were trying to do, what you expected to happen, and what actually happened)

Steps to Reproduce

(Add more steps as needed)

Error Messages

(If applicable, copy and paste any error messages you received)

Screenshots or Videos

(If applicable, add screenshots or links to videos that demonstrate the issue)

Additional Information

What I’ve Tried

(Describe any troubleshooting steps you’ve already taken)

Related Issues

(If you’re aware of any related issues or forum posts, please link them here)

Additional Context

## Environment

Server:

```text

OS: Ubuntu 22.04.5 LTS

Kernel: 5.15.0-177-generic

Docker: 29.4.3

NVIDIA driver: 580.126.09

CUDA version reported by nvidia-smi: 13.0

GPU: 8x NVIDIA GeForce RTX 4090

Target GPU: GPU 1, PCI bus id 00000000:0C:00.0

```

Docker image:

```text

NVIDIA NGC Isaac Sim Docker image, tag `6.0.0`

```

Client:

```text

macOS

Isaac Sim WebRTC Streaming Client 2.0.0

```

Network:

```text

Server public IP: SERVER_PUBLIC_IP

Default WebRTC signal port: 49100/tcp

Default WebRTC stream port: 47998/udp

Docker network mode: host

```

GPU/display status on the server:

```text

index, name, driver_version, pci.bus_id, display_active, display_mode, memory.used [MiB]

0, NVIDIA GeForce RTX 4090, 580.126.09, 00000000:08:00.0, Disabled, [Requested functionality has been deprecated], 18254 MiB

1, NVIDIA GeForce RTX 4090, 580.126.09, 00000000:0C:00.0, Disabled, [Requested functionality has been deprecated], 6 MiB

2, NVIDIA GeForce RTX 4090, 580.126.09, 00000000:89:00.0, Disabled, [Requested functionality has been deprecated], 5 MiB

3, NVIDIA GeForce RTX 4090, 580.126.09, 00000000:8A:00.0, Disabled, [Requested functionality has been deprecated], 5 MiB

4, NVIDIA GeForce RTX 4090, 580.126.09, 00000001:08:00.0, Disabled, [Requested functionality has been deprecated], 43468 MiB

5, NVIDIA GeForce RTX 4090, 580.126.09, 00000001:0C:00.0, Disabled, [Requested functionality has been deprecated], 43468 MiB

6, NVIDIA GeForce RTX 4090, 580.126.09, 00000001:8C:00.0, Disabled, [Requested functionality has been deprecated], 43468 MiB

7, NVIDIA GeForce RTX 4090, 580.126.09, 00000001:8D:00.0, Disabled, [Requested functionality has been deprecated], 43468 MiB

```

`nvidia-xconfig --query-gpu-info` reports `Number of Display Devices: 0` for all GPUs.

## Docker Command

The container is started with host networking and explicit GPU capabilities:

```bash

docker run -it \

–name isaac-sim-60-stream-debug \

--gpus ‘“device=1”,“capabilities=compute,utility,graphics,video,display”’ \

–entrypoint bash \

--network host \

–shm-size=8g \

--ulimit memlock=-1 \

–ulimit stack=67108864 \

-e ACCEPT_EULA=Y \

-e OMNI_ENV_PRIVACY_CONSENT=Y \

-e NVIDIA_DRIVER_CAPABILITIES=all \

-e ISAAC_PUBLIC_ENDPOINT=SERVER_PUBLIC_IP \

-v /host/isaac:/workspace/isaac:rw \

-v /host/isaac-cache/.cache:/isaac-sim/.cache:rw \

-v /host/isaac-cache/nvidia-omniverse:/isaac-sim/.nvidia-omniverse:rw \

-v /host/project:/workspace/project:rw \

NGC_ISAAC_SIM_6_IMAGE

```

I also tested exposing `/dev/nvidia-caps` explicitly:

```bash

--device /dev/nvidia-caps/nvidia-cap1

--device /dev/nvidia-caps/nvidia-cap2

```

Inside the container, `/dev/nvidia-caps/nvidia-cap1` and `/dev/nvidia-caps/nvidia-cap2` are visible, but the WebRTC failure remains the same.

## Reproduction Steps

Inside the Isaac Sim 6.0.0 container, start the official headless streaming app:

```bash

/isaac-sim/runheadless.sh -v \

–/exts/omni DOT kit DOT livestream DOT app/primaryStream/publicIp=SERVER_PUBLIC_IP

```

Then connect from macOS Isaac Sim WebRTC Streaming Client:

```text

Server: SERVER_PUBLIC_IP

Signal: 49100

Stream: 47998

```

I also tried explicit ports, WebRTC stream type, lower FPS, and lower resolution:

```bash

/isaac-sim/runheadless.sh -v \

–/exts/omni DOT kit DOT livestream DOT app/primaryStream/publicIp=SERVER_PUBLIC_IP \

--/exts/omni DOT kit DOT livestream DOT app/primaryStream/signalPort=49100 \

–/exts/omni DOT kit DOT livestream DOT app/primaryStream/streamPort=47998 \

--/exts/omni DOT kit DOT livestream DOT app/primaryStream/streamType=webrtc \

–/exts/omni DOT kit DOT livestream DOT app/primaryStream/targetFps=15 \

--/app/window/width=640 \

–/app/window/height=360

```

The result is the same.

## Actual Result

The Mac WebRTC client opens a black window. Isaac Sim logs show that the signal path reaches the server, but video stream creation fails:

```text

Display Mode : Requested functionality has been deprecated

Display Attached : No

Display Active : Disabled

Started primary stream server on signal port 49100 and stream port 47998

Isaac Sim Full Streaming App is loaded.

Processing 11 signaling headers

[Fatal] [omni DOT kit DOT livestream DOT streamsdk] [NvscStreamingSess] Failed to setup the streaming session because:

StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Failed to create video stream 0

```

## Expected Result

The macOS Isaac Sim WebRTC Streaming Client should display the Isaac Sim viewport.

## Network Checks

TCP signal port is reachable from the Mac:

```bash

nc -vz SERVER_PUBLIC_IP 49100

```

UDP packets from the Mac reach the Linux server:

```bash

sudo timeout 20 tcpdump -ni any udp port 47998

```

Example captured traffic:

```text

eth0 In IP CLIENT_PUBLIC_IP:ephemeral-port > SERVER_PRIVATE_IP:47998 UDP, length 5

```

Since Isaac logs `Processing 11 signaling headers`, the client is also reaching the Isaac Sim signaling server.

## What I Have Already Tried

### 1. Offline rendering works

Using Isaac Sim 6.0.0 Docker, I can render images headlessly from a Python script. For example, I loaded the official `Simple_Room` environment and generated preview images successfully.

This suggests that Isaac Sim itself, Vulkan rendering, and basic GPU access are working.

### 2. Host-side NVENC works

Independent NVENC test on the host succeeds on GPU 1:

```bash

ffmpeg -hide_banner -y \

-f lavfi -i testsrc2=size=640x360:rate=15 \

-t 2 \

-c:v h264_nvenc \

-gpu 1 \

-preset p1 \

/tmp/nvenc_gpu1_test_output

```

This suggests the target GPU has working hardware video encoding outside Isaac Sim.

### 3. Explicit NVIDIA capabilities and `/dev/nvidia-caps`

I tested:

```text

NVIDIA_DRIVER_CAPABILITIES=all

--gpus ‘“device=1”,“capabilities=compute,utility,graphics,video,display”’

--device /dev/nvidia-caps/nvidia-cap1

--device /dev/nvidia-caps/nvidia-cap2

```

The error remains:

```text

StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Failed to create video stream 0

```

### 4. X11 / virtual display experiment

I tried creating an X server on the host:

```bash

sudo nvidia-xconfig \

–allow-empty-initial-configuration \

--use-display-device=None \

–virtual=1280x720

sudo Xorg :1 -noreset +extension GLX +extension RANDR +extension RENDER

```

`DISPLAY=:1 xdpyinfo` worked, but `nvidia-smi -i 1 -q` still showed:

```text

Display Attached : No

Display Active : Disabled

```

I also tried:

```bash

sudo nvidia-xconfig \

–allow-empty-initial-configuration \

--use-display-device=DFP-0 \

–connected-monitor=DFP-0 \

--virtual=1280x720

```

The display state still remained inactive, and Isaac Sim livestream still failed with the same StreamSDK error.

### 5. RTSP counter-test

I also tried RTSP streaming:

```bash

/isaac-sim/runheadless.sh -v \

–enable omni DOT kit DOT livestream DOT rtsp \

--/exts/omni DOT kit DOT livestream DOT app/primaryStream/streamType=rtsp \

–/exts/omni DOT kit DOT livestream DOT app/primaryStream/streamPort=8554 \

--/app/window/width=640 \

–/app/window/height=360

```

That failed differently:

```text

Could not find nvh264enc element.

Failed to start the primary stream server

```

The plugin file exists:

```text

Isaac Sim RTSP extension plugin directory, file `libgstnvenc` shared object

```

`ldd` did not report missing dependencies. I also tried setting `GST_PLUGIN_PATH`, `GST_PLUGIN_SYSTEM_PATH_1_0`, and `LD_LIBRARY_PATH`, but RTSP still reported missing `nvh264enc`.

## Questions

1. Is Isaac Sim 6.0.0 WebRTC livestream expected to work on a remote headless Docker server with GeForce RTX 4090 GPUs and no physical display devices?

2. Does the Stream SDK require an active NVIDIA display on Linux for WebRTC livestream, even when Isaac Sim is started with `runheadless.sh`?

3. Is `Display Active: Disabled` expected to cause:

```text

StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Failed to create video stream 0

```

4. If this environment should be supported, what exact driver/container/Xorg/NVENC/NVFBC settings are required?

5. Is there a known Isaac Sim 6.0.0 regression in WebRTC livestream on headless Docker compared with Isaac Sim 5.1.0?

6. Are there recommended diagnostics for `omni DOT kit DOT livestream DOT streamsdk` to determine whether the failure is caused by display mode, NVENC, NVFBC, Vulkan, or container device permissions?

## Logs Available

I can provide the full logs if needed. The most relevant local logs are:

```text

webrtc default 640x360 log

rtsp 640x360 log

rtsp 640x360 with GST path log

Isaac Sim Streaming/6.0 kit logs under /isaac-sim/.nvidia-omniverse/logs/Kit/

```

Hi, any specific reason you’re streaming from GPU 1 instead of GPU 0?
The error message “Failed to create video stream 0” and
“The Display Attached: No / Display Active: Disabled” indicates that the StreamingSDK can’t bind a presentable surface on the targeted GPU. Can you try to stream on GPU 0 to see if that works?

I tested GPU 0 as suggested.

The container was started with only GPU 0 exposed:
–gpus ‘“device=0”,“capabilities=compute,utility,graphics,video,display”’

Inside the container, only GPU 0 was visible. WebRTC started normally and listened on the default ports 49100/tcp and 47998/udp. The macOS WebRTC client reached the server, and the Isaac log showed:

Processing 11 signaling headers

But it still failed with the same error:

StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Failed to create video stream 0

GPU 0 also reports:
Display Attached: No
Display Active: Disabled

So the issue does not seem to be specific to using GPU 1. GPU 0 behaves the same.

Thanks. I have an update.

I was able to get Isaac Sim 6.0.0 WebRTC streaming working on the same server.

The successful test used a completely fresh baseline:

  • Removed all old Isaac Sim Docker containers.
  • Did not reuse my previous startup script.
  • Did not reuse the old Isaac cache/config/log directories.
  • Created a new container from nvcr.io/nvidia/isaac-sim:6.0.0.
  • Used fresh mounts only.
  • Used host networking.
  • Used --gpus '"device=2","capabilities=compute,utility,graphics,video,display"'.
  • Started Isaac with the normal headless command:
    ./runheadless.sh -v ...
  • Connected from macOS Isaac Sim WebRTC Streaming Client 2.0.0 through the Tailscale IP.

The Mac client rendered the Isaac Sim UI successfully.

The target GPU in the working run still reports:

Display Mode     : Requested functionality has been deprecated
Display Attached : No
Display Active   : Disabled

So in this environment, Display Attached: No / Display Active: Disabled by itself does not appear to prevent Isaac Sim 6.0.0 WebRTC headless streaming.

One important finding: my previous helper scripts reused an existing Docker container if it already existed, and they also reused persistent Isaac cache/config directories. That likely invalidated many of my later tests, because changes to GPU/env/mounts may not have actually applied to the already-created container, and Isaac/Kit state may have persisted across experiments.

At this point, I think the earlier StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Failed to create video stream 0 was likely caused by stale/reused container or persisted Isaac cache/config state, not specifically by using GPU 1 or by the lack of an active display.

I will treat the clean-container + fresh-cache setup as the working baseline. Thanks for pointing me toward testing the GPU/display assumptions.

Thanks for the update! I will close the topic then.