vscode-jupyter: IPyWidgets do not renderer due to a 401 error in webview
Applies To
- Notebooks (.ipynb files)
- Interactive Window and/or Cell Scripts (.py files with #%% markers)
What happened?
Recently, support for ipywidgets 8 was added with #8552. After updating to the latest vscode-insiders and the pre-release versions of the Jupyter extension and notebook renderers, all my widgets load properly except for the matplotlib widget. This happens on two different remote machines running Ubuntu Server 22.04.1 LTS. When attempting to plot with %matplotlib widget
enabled, I get a window that says, “Click to show javascript error.” Clicking this shows the following:
[Open Browser Console for more detailed log - Double click to close this message]
Failed to load model class 'MPLCanvasModel' from module 'jupyter-matplotlib'
Error: No version of module jupyter-matplotlib is registered
at ph.loadClass (https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-renderers-1.0.15/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:4099813)
at ph.loadClass (https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-renderers-1.0.15/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:4403287)
at ph.loadModelClass (https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-renderers-1.0.15/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:4097773)
at ph._make_model (https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-renderers-1.0.15/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:4094616)
at ph.new_model (https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-renderers-1.0.15/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:4092246)
at ph.handle_comm_open (https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-renderers-1.0.15/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:4091039)
at https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-renderers-1.0.15/out/node_modules/%40vscode/jupyter-ipywidgets8/dist/ipywidgets.js:2:4402511
at g._handleCommOpen (https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/out/webviews/webview-side/ipywidgetsKernel/ipywidgetsKernel.js:2:36493)
at async g._handleMessage (https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/out/webviews/webview-side/ipywidgetsKernel/ipywidgetsKernel.js:2:38387)
Typically, I work within single folder workspaces for my projects. For this project, it’s located under ~/projects/{my-project}
. Interestingly, if I add my home directory (~/) to the project making it a multi-root workspace, the error goes away. I’m guessing this means there is an issue with getting the proper path for the widget when it’s not part of the workspace.
VS Code Version
1.76.0-insider
Jupyter Extension Version
v2023.2.1000451018
Jupyter logs
Visual Studio Code - Insiders (1.76.0-insider, ssh-remote, desktop)
Jupyter Extension Version: 2023.2.1000451018.
Python Extension Version: 2023.3.10411009.
Workspace folder /home/chris/projects/dissertation
User belongs to experiment group 'jupyterTest'
User belongs to experiment group 'jupyterEnhancedDataViewer'
info 00:58:08.060: LSP Notebooks experiment is enabled
info 00:58:09.827: Checking for server existence.
info 00:58:09.828: Connecting to server
info 00:58:09.829: Connecting remote server kernel http://localhost:8889/
Connecting to Jupyter server at http://localhost:8889/
info 00:58:09.829: Creating server with url : http://localhost:8889/
info 00:58:09.842: Server started.
info 00:58:09.842: Creating server with url : http://localhost:8889/
error 00:58:09.909: Error fetching remote kernels: FetchError: request to http://localhost:8889/api/kernels?1676357889847 failed, reason: connect ECONNREFUSED 127.0.0.1:8889
at ClientRequest.<anonymous> (/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/out/extension.node.js:2:1101739)
at ClientRequest.emit (node:events:526:28)
at Socket.socketErrorListener (node:_http_client:442:9)
at Socket.emit (node:events:526:28)
at emitErrorNT (node:internal/streams/destroy:157:8)
at emitErrorCloseNT (node:internal/streams/destroy:122:3)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
error 00:58:09.914: UniversalRemoteKernelFinder: Failed to get kernels without cache FetchError: request to http://localhost:8889/api/kernels?1676357889847 failed, reason: connect ECONNREFUSED 127.0.0.1:8889
at ClientRequest.<anonymous> (/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/out/extension.node.js:2:1101739)
at ClientRequest.emit (node:events:526:28)
at Socket.socketErrorListener (node:_http_client:442:9)
at Socket.emit (node:events:526:28)
at emitErrorNT (node:internal/streams/destroy:157:8)
at emitErrorCloseNT (node:internal/streams/destroy:122:3)
at processTicksAndRejections (node:internal/process/task_queues:83:21)
error 00:58:09.914: SessionManager:getKernelSpecs failure: Error: Poll (@jupyterlab/services:KernelSpecManager#specs) is disposed.
at e.dispose (/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/out/extension.node.js:2:172349)
at u.dispose (/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/out/extension.node.js:2:63778)
at og.dispose (/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/out/extension.node.js:17:267737)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at ug.listKernelsFromConnection (/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/out/extension.node.js:17:280120)
info 00:58:11.149: Process Execution: > ~/projects/dissertation/.venv/bin/python -m pip list
> ~/projects/dissertation/.venv/bin/python -m pip list
info 00:58:13.298: Starting Jupyter Session startUsingPythonInterpreter, .jvsc74a57bd0745fc2478a55d01e9e8f73e185ce59c6d1715f0e50068f228ffdf64af9065568./home/chris/projects/dissertation/.venv/python./home/chris/projects/dissertation/.venv/python.-m#ipykernel_launcher (Python Path: /home/chris/projects/dissertation/.venv, EnvType: Poetry, EnvName: '.venv', Version: 3.10.9 (main, Feb 14 2023, 00:14:45) [GCC 11.3.0]) for '/home/chris/projects/dissertation/notebooks/4-delta/02-nodal-analysis.ipynb' (disableUI=false)
info 00:58:13.344: Process Execution: > ~/projects/dissertation/.venv/bin/python -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
> ~/projects/dissertation/.venv/bin/python -c "import ipykernel; print(ipykernel.__version__); print("5dc3a68c-e34e-4080-9c3e-2a532b2ccb4d"); print(ipykernel.__file__)"
info 00:58:13.427: Process Execution: > ~/projects/dissertation/.venv/bin/python -m ipykernel_launcher --ip=127.0.0.1 --stdin=9003 --control=9001 --hb=9000 --Session.signature_scheme="hmac-sha256" --Session.key=b"a7669770-f9dd-4bde-8847-63685719a21d" --shell=9002 --transport="tcp" --iopub=9004 --f=/home/chris/.local/share/jupyter/runtime/kernel-v2-2254992iowHK1Do7DO.json
> ~/projects/dissertation/.venv/bin/python -m ipykernel_launcher --ip=127.0.0.1 --stdin=9003 --control=9001 --hb=9000 --Session.signature_scheme="hmac-sha256" --Session.key=b"a7669770-f9dd-4bde-8847-63685719a21d" --shell=9002 --transport="tcp" --iopub=9004 --f=/home/chris/.local/share/jupyter/runtime/kernel-v2-2254992iowHK1Do7DO.json
info 00:58:13.427: Process Execution: cwd: ~/projects/dissertation/notebooks/4-delta
cwd: ~/projects/dissertation/notebooks/4-delta
info 00:58:13.521: ipykernel version & path 6.21.2, ~/projects/dissertation/.venv/lib/python3.10/site-packages/ipykernel/__init__.py for /home/chris/projects/dissertation/.venv/bin/python
info 00:58:13.921: Started Kernel .venv (Python 3.10.9) (pid: 226449)
error 00:58:13.989: Determined IPyKernel Version [{"name":"stdout","text":"e976ee50-99ed-4aba-9b6b-9dcd5634d07d:IPyWidgets:8.0.4\n","output_type":"stream"}]
error 00:58:13.989: Determined IPyKernel Version and event fired 8
info 00:58:14.476: Process Execution: > ~/projects/dissertation/.venv/bin/python ~/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/pythonFiles/printJupyterDataDir.py
> ~/projects/dissertation/.venv/bin/python ~/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/pythonFiles/printJupyterDataDir.py
error 00:58:17.529: Widget load failure {} {
className: 'MPLCanvasModel',
moduleName: 'jupyter-matplotlib',
moduleVersion: '^0.11',
cdnsUsed: false,
isOnline: true,
timedout: false,
error: '{}'
}
error 00:58:17.554: Widget load failure {} {
className: 'ToolbarModel',
moduleName: 'jupyter-matplotlib',
moduleVersion: '^0.11',
cdnsUsed: false,
isOnline: true,
timedout: false,
error: '{}'
}
Coding Language and Runtime Version
Python 3.10.9
Language Extension Version (if applicable)
v2023.3.10411009
Anaconda Version (if applicable)
No response
Running Jupyter locally or remotely?
Remote
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 20 (8 by maintainers)
@christasich ms-toolsai-jupyter-insiders.vsix.zip
You can verify the fix by installing the above VSIX
Install from VSIX
This solves it for me. Thank you!
@christasich Thanks for the confirmation, will rope in one of my colleagues who might be able to help here.
@mjbvz
/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/tmp/scripts/f76072443ec7cd6da4d33ac3ec175e601af62de2b53e33d7feee7be8bec8b7ee/jupyter/nbextensions/jupyter-matplotlib/index.js
is not getting loaded by the webviewpreload.js:1963 GET https://vscode-remote+ssh-002dremote-002bbayu.vscode-resource.vscode-cdn.net/home/chris/.vscode-server-insiders/extensions/ms-toolsai.jupyter-2023.2.1000451018/tmp/scripts/f76072443ec7cd6da4d33ac3ec175e601af62de2b53e33d7feee7be8bec8b7ee/jupyter/nbextensions/jupyter-matplotlib/index.js net::ERR_ABORTED 401