Skip to content

bug+workaround: "Error: No version of module jupyter_rfb is registered" in Jupyter / VSCode environmentΒ #174

@edoardogiacomello

Description

@edoardogiacomello

Hello,
I'd like to report an issue that I'm having since a couple of months while trying to use NDV on Jupyter through VSCode by following the provided setup approach.

Steps to reproduce

# Create a new conda enviroment
conda create -p $PWD/ndvtest python=3.10 ipykernel
# Activate env
conda activate $PWD/ndvtest
# Install ndv
pip install ndv[jup]

Then, in a notebook:

import ndv
import numpy as np

ndv.imshow(np.random.rand(100, 100, 3).astype(np.float32))

This provides two errors, one in the JS frame of the ndv viewport:

Failed to load model class 'RemoteFrameBufferModel' from module 'jupyter_rfb'
Error: No version of module jupyter_rfb is registered
    at WidgetManager.loadClass (https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:2420023)
    at WidgetManager.loadClass (https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:2803837)
    at WidgetManager.loadModelClass (https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:2416808)
    at WidgetManager._make_model (https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:2414769)
    at WidgetManager.new_model (https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:2412488)
    at WidgetManager.handle_comm_open (https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:2411259)
    at https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-renderers-1.1.0/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:2802850
    at t._handleCommOpen (https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-2025.1.0-linux-x64/dist/webviews/webview-side/ipywidgetsKernel/ipywidgetsKernel.js:3:119358)
    at async t._handleMessage (https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/localscratch/vscode-server/.vscode-server/extensions/ms-toolsai.jupyter-2025.1.0-linux-x64/dist/webviews/webview-side/ipywidgetsKernel/ipywidgetsKernel.js:3:121233)

Concurrently, VSCode alerts me with this:
Image

Workaround

The issue seems to be related to newer version of jupyter-rfb that gets installed with ndv:
jupyter-rfb 0.5.1

If I just downgrade jupyter-rfb to jupyter_rfb==0.4.4, i get some warnings...

WARNING:wgpu:Unable to find extension: VK_EXT_swapchain_colorspace
WARNING:wgpu:No windowing system present. Using surfaceless platform
libEGL warning: DRI2: failed to create dri screen
libEGL warning: failed to open [/dev/dri/card1](https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/dev/dri/card1): Permission denied

libEGL warning: failed to open [/dev/dri/card0](https://vscode-remote+ssh-002dremote-002bvdi.vscode-resource.vscode-cdn.net/dev/dri/card0): Permission denied

WARNING:wgpu:No config found!
WARNING:wgpu:No config found!

but it ultimately works.

Interestingly, if I pip install --upgrade jupyter_rfb back to 0.5.1 then ndv keeps working and does not break anymore.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions