Error when using Web streaming with Omniverse

I am following the readme file here with the latest code from the main branch. I want to build a USD viewer kit application that streams to the provided react application. I am running this in an Nvidia Omniverse Workstation in Azure.

When I open the react application in the browser and select ‘UI for default streaming USD Viewer app’, I see the following error in the kit application’s logs

main: thread_init: already added for thread
2025-09-10T14:52:41Z [41,345ms] [Fatal] [omni.kit.livestream.streamsdk] [NvscStreamingSess] #2(C)00000{18384}&1DA6C6B0& Failed to setup the streaming session because: StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Failed to create video stream 0
2025-09-10T14:52:41Z [41,358ms] [Error] [omni.kit.livestream.webrtc.plugin] NVST Error: NVST_R_INVALID_STATE
2025-09-10T14:52:41Z [41,358ms] [Warning] [omni.kit.livestream.webrtc.plugin] Failed to send custom app message to client: {"event_type": "loadingStateResponse", "payload": {"url": "", "loading_state": "idle"}}

What could be wrong?

Hi and thanks for posting. Let me find out from the engineers.

Hi, I’m having the same problem.
I’m using USD composer_streaming.kit and have referenced WebRTC streaming - #7 .

2025-11-05T00:56:43Z [57,853ms] [Fatal] [omni.kit.livestream.streamsdk] [NvscStreamingSess] #6(C)*16504*{16952302544241859520}&1DA6C6B0&<NvscStreamingSes> Failed to setup the streaming session because: StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Got stop event while waiting for client connection.

Any solutions are available?

1 Like

Your Omniverse USD Viewer streaming session is failing with these critical errors:

  • main: thread_init: already added for thread
  • [Fatal] [omni.kit.livestream.streamsdk] ... StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Failed to create video stream 0
  • [Error] [omni.kit.livestream.webrtc.plugin] NVST Error: NVST_R_INVALID_STATE
  • [Warning] ... Failed to send custom app message to client

What’s Happening?

These log messages are symptoms of a failure in the video streaming pipeline between the Kit application and the React client. The root cause is most frequently a misconfiguration or resource conflict in the Kit streaming service, especially when running in cloud/virtualized or multi-threaded environments like Azure.

Key Points from Community & Official Reports

  • The StreamSdkException 800b0000 [NVST_R_GENERIC_ERROR] Failed to create video stream almost always points to:
    • GPU not in the correct operation mode (“compute mode” instead of “graphics mode”;
    • Missing hardware video encoding support or inaccessible display server (X11) if visual output is required.​
    • Too many threads or a threading/resource conflict in Kit’s streaming subsystem, especially in cloud/virtual desktop deployments.
  • [NVST_R_INVALID_STATE] and downstream WebRTC errors usually mean the streaming session can’t finish initialization, possibly due to an earlier failure allocating video, audio, or display resources.
  • thread_init: already added for thread might warn about reinitialization of Kit streaming threads; often a consequence, not a root cause, of the main stream setup failure.
  • If the GPU is in compute mode (display outputs and graphics features disabled), the video stream cannot be created and published.​

How to Fix

  1. Check GPU Graphics Mode:
  • Ensure your Azure/NVIDIA workstation GPU (L40S, A40, etc.) is in the correct graphics-enabled mode (not compute-only). Use gpumodeswitch --listgpumodes for confirmation, and enable display/graphics mode if needed.
  1. Ensure Access to Required Hardware Features:
  • If in a VM or container, verify hardware video encoders are present and available to the instance (sometimes they are hidden or disabled in cloud setups).
  1. Check Display/X11 Server Availability:
  • Kit streaming can require an active X11 display server. If you’re running headless, confirm if you need to launch Xvfb or another virtual display. Set the $DISPLAY variable as required.
  1. Avoid Thread/Resource Conflicts:
  • Don’t launch multiple instances of the streaming service at once. If you restart Kit’s USD Viewer or attempt to reinitialize the stream in quick succession, shut down all related threads/processes before retrying.
  1. Update Kit and Streaming Extensions:
  • Use latest Kit and Omniverse extensions from the official branch. Outdated packages can break WebRTC or StreamSDK compatibility with the front-end client.​
  1. Open Correct Network Ports and Set Firewall:
  • For Azure cloud, ensure all necessary TCP/UDP ports for WebRTC and video streaming are open and not blocked by network rules.
  1. Review Browser Console and Kit Logs:
  • Confirm no browser-side errors related to WebSocket or media stream connections. These can help diagnose firewall, config, or service mapping issues.​

In summary:
Your streaming session is blocked because the Kit application cannot create the video stream—likely due to the GPU not being in graphics mode, missing video encode resources (in VM/cloud), or a conflict within the streaming extension. Switch the GPU to graphics mode, check X11/display access, verify hardware encoders are available, and restart with updated configs/extensions.

I think I am facing a very similar issue, as explained here: WebRTC server crashes · Issue #330 · isaac-sim/IsaacSim · GitHub

I suspect my L40S GPU is in compute-only mode. However, I do not have access to gpumodeswitch. Is there any way I can do this with nvidia-smi?

Note that I have unsuccessfully tried:

$ nvidia-smi --gom=0
GOM mode cannot be changed on GPU 00000000:01:00.0.
Treating as warning and moving on.
All done.
```

I suspect the GPU graphics mode is not activated because of this output:

$ nvidia-smi -q
...
    Display Mode                          : Requested functionality has been deprecated
    Display Attached                      : Yes
    Display Active                        : Disabled
...

I attach the whole output of nvidia-smi -q: nvidia_smi.txt (22.8 KB)

@Richard3D Could you please provide some hints?

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