Migration Guide: nucleus_connector to connection_manager#

omni.kit.widget.nucleus_connector is deprecated as of version 2.3.3. All functionality has moved to omni.kit.widget.connection_manager. The old extension is now a thin shim that delegates every call and emits DeprecationWarning.

API Mapping#

Old (nucleus_connector)

New (connection_manager)

Notes

connect(name, url, on_success_fn, on_failed_fn)

await ensure_connection(url, show_connecting_dialog=True)

New API is async and returns bool. Old shim wraps it with asyncio.ensure_future.

connect_with_dialog(on_success_fn, on_failed_fn, server_type)

show_add_nucleus_server_dialog(on_success, on_failed)

server_type parameter is dropped; use show_add_http_server_dialog() or show_add_discovery_server_dialog() for non-Nucleus.

reconnect(url, on_success_fn, on_failed_fn)

reconnect(url, on_success_fn, on_failed_fn)

Same signature.

disconnect(url)

disconnect(url)

Same signature.

NUCLEUS_CONNECTION_SUCCEEDED_EVENT

CONNECTION_SUCCEEDED_EVENT

Different event string. The old event is no longer emitted; subscribers must migrate to CONNECTION_SUCCEEDED_EVENT.

Callback Signature Change#

The old on_success_fn accepted 3 arguments: (name, url, server_type). The new API uses 2: (name, url). The shim bridges this automatically via _wrap_success_callback — it inspects the callback’s parameter count and passes "omniverse" as the third argument if needed.

If you control the callback, update it to accept 2 arguments:

# Old
def on_connected(name, url, server_type):
    print(f"Connected to {name} ({server_type})")

# New
def on_connected(name, url):
    print(f"Connected to {name}")

Dependency Update#

Update your extension.toml:

# Old
[dependencies]
"omni.kit.widget.nucleus_connector" = {}

# New
[dependencies]
"omni.kit.widget.connection_manager" = {}

Timeline#

The nucleus_connector shim will be removed in a future release. Migrate before then to avoid breakage.