Skip to content

Outputs sometimes dropped from Output widget when updated in subthreads #4020

Description

@rawlins

Description

I'm experiencing weird interactions with threading and Output widgets in Jupyter, that only happen on the second or later output widget created in a notebook. Essentially, some (but not all) output in a subthread that should be in the widget, ends up orphaned from the widget, leading to out of order output sequences and output that is missing altogether (when clear_display has been used, see note 2 below).

I believe this is related to changes in ipython/ipykernel#1451 but I've somewhat reached my diagnostic limits on this for the moment. Anecdotally, reverting to ipykernel 6 is reported to fix the downstream bugs I'm chasing.

Reproduce

Consider the following minimal example when run in a Jupyter notebook cell:

import threading
import ipywidgets as widgets
import time
current_cell_parent = get_ipython().get_parent()

out = widgets.Output(layout={'border': '1px solid black'})
display(out)
with out:
    print("initial")

def thread_task():
    get_ipython().set_parent(current_cell_parent)
    for i in range(5):
        with out:
            print(f"...{i}")
            time.sleep(0.5)

t = threading.Thread(target=thread_task)
t.start()
t.join()

with out:
    print(f"final text")

The expected final output of this cell, and what happens the first time you run it, would be the following, within a 1px border:

initial
...0
...1
...2
...3
...4
final text

At this point out.outputs is as expected:

({'name': 'stdout',
  'text': 'initial\n...0\n...1\n...2\n...3\n...4\nfinal text\n',
  'output_type': 'stream'},)

To replicate the bug, just rerun the cell with the above code at least a second time. What I am seeing after the code finishes is the following, with the border only around the first three lines:

initial
...0
final text
...1
...2
...3
...4

At this point, out.outputs is:

({'name': 'stdout',
  'text': 'initial\n...0\nfinal text\n',
  'output_type': 'stream'},)

That is, it appears on reruns that the outputs 1-4 have been "orphaned" from the widget / do not render within the widget.

Note 1: I found this bug while trying to track down Textualize/rich#3868 and pymc-devs/pymc#7757. The minimal example above is essentially those bugs abstracted from their package context with the addition of the set_parent call (per ipython/ipykernel#1451). Without the set_parent call in the thread, a different but closely related behavior happens (this is the downstream bug). On the first run, everything works as expected. On the second and later runs, only the ...0 output appears from the thread, and outputs 1-4 are dropped altogether. So I suspect the root cause is the same; I'm not sure what the expected behavior is without the set_parent call in ipykernel 7+ though; my impression from the linked ipykernel PR is that this is obligatory (maybe I'm wrong).

Note 2: if clear_output is called in the thread's display loop and the final output (simulating a typical pattern for things like rich's progress bars), the final output doesn't render at all, though it is present in out.outputs. I haven't focused on this case because I'm guessing it's a side effect of the real bug. I can provide a minimal case for this though if that would be helpful.

Note 3: Restarting the kernel will restore the expected behavior (once). I haven't found any package reloading scheme that fixes it.

Expected behavior

Stable behavior when running the cell multiple times. (More generally, this happens any time there are multiple output widgets, so stable behavior between widgets.)

Context

  • ipywidgets version 8.1.8
  • Operating System and version: MacOS 15.2
  • Browser and version: Firefox 150.0
Troubleshoot Output
$PATH:
	/opt/local/libexec/ccache
	/Users/advil/miniforge3/envs/ipywidgets-test/bin
	/Users/advil/miniforge3/condabin
	/opt/local/libexec/gnubin
	/opt/local/bin
	/opt/local/sbin
	/usr/local/bin
	/System/Cryptexes/App/usr/bin
	/usr/bin
	/bin
	/usr/sbin
	/sbin
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin
	/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
	/Library/Apple/usr/bin
	/Library/TeX/texbin

sys.path:
/Users/advil/miniforge3/envs/ipywidgets-test/bin
/Users/advil/miniforge3/envs/ipywidgets-test/lib/python314.zip
/Users/advil/miniforge3/envs/ipywidgets-test/lib/python3.14
/Users/advil/miniforge3/envs/ipywidgets-test/lib/python3.14/lib-dynload
/Users/advil/miniforge3/envs/ipywidgets-test/lib/python3.14/site-packages

sys.executable:
/Users/advil/miniforge3/envs/ipywidgets-test/bin/python3.14

sys.version:
3.14.5 | packaged by conda-forge | (main, May 20 2026, 00:45:47) [Clang 20.1.8 ]

platform.platform():
macOS-15.2-arm64-arm-64bit-Mach-O

which -a jupyter:
/Users/advil/miniforge3/envs/ipywidgets-test/bin/jupyter

pip list:
Package Version
------------------------- -----------
anyio 4.13.0
appnope 0.1.4
argon2-cffi 25.1.0
argon2-cffi-bindings 25.1.0
arrow 1.4.0
asttokens 3.0.1
async-lru 2.3.0
attrs 26.1.0
babel 2.18.0
beautifulsoup4 4.14.3
bleach 6.3.0
Brotli 1.2.0
cached-property 1.5.2
certifi 2026.5.20
cffi 2.0.0
charset-normalizer 3.4.7
comm 0.2.3
debugpy 1.8.20
decorator 5.3.1
defusedxml 0.7.1
exceptiongroup 1.3.1
executing 2.2.1
fastjsonschema 2.21.2
fqdn 1.5.1
h11 0.16.0
h2 4.3.0
hpack 4.1.0
httpcore 1.0.9
httpx 0.28.1
hyperframe 6.1.0
idna 3.17
importlib_metadata 9.0.0
ipykernel 7.2.0
ipython 9.14.0
ipython_pygments_lexers 1.1.1
ipywidgets 8.1.8
isoduration 20.11.0
jedi 0.19.2
Jinja2 3.1.6
json5 0.14.0
jsonpointer 3.1.1
jsonschema 4.26.0
jsonschema-specifications 2025.9.1
jupyter_client 8.8.0
jupyter_core 5.9.1
jupyter-events 0.12.1
jupyter-lsp 2.3.1
jupyter_server 2.19.0
jupyter_server_terminals 0.5.4
jupyterlab 4.5.7
jupyterlab_pygments 0.3.0
jupyterlab_server 2.28.0
jupyterlab_widgets 3.0.16
lark 1.3.1
MarkupSafe 3.0.3
matplotlib-inline 0.2.2
mistune 3.2.1
nbclient 0.10.4
nbconvert 7.17.1
nbformat 5.10.4
nest_asyncio 1.6.0
notebook_shim 0.2.4
overrides 7.7.0
packaging 26.2
pandocfilters 1.5.0
parso 0.8.7
pexpect 4.9.0
pip 26.1.1
platformdirs 4.10.0
prometheus_client 0.25.0
prompt_toolkit 3.0.52
psutil 7.2.2
ptyprocess 0.7.0
pure_eval 0.2.3
pycparser 3.0
Pygments 2.20.0
pyobjc-core 12.1
pyobjc-framework-Cocoa 12.1
PySocks 1.7.1
python-dateutil 2.9.0.post0
python-json-logger 3.2.1
PyYAML 6.0.3
pyzmq 27.1.0
referencing 0.37.0
requests 2.34.2
rfc3339_validator 0.1.4
rfc3986-validator 0.1.1
rfc3987-syntax 1.1.0
rpds-py 2026.5.1
Send2Trash 2.1.0
setuptools 82.0.1
six 1.17.0
sniffio 1.3.1
soupsieve 2.8.4
stack_data 0.6.3
terminado 0.18.1
tinycss2 1.4.0
tomli 2.4.1
tornado 6.5.6
traitlets 5.15.0
typing_extensions 4.15.0
typing_utils 0.1.0
tzdata 2026.2
uri-template 1.3.0
urllib3 2.7.0
wcwidth 0.7.0
webcolors 25.10.0
webencodings 0.5.1
websocket-client 1.9.0
widgetsnbextension 4.0.15
zipp 4.1.0

conda list:
# packages in environment at /Users/advil/miniforge3/envs/ipywidgets-test:
#
# Name Version Build Channel
_python_abi3_support 1.0 hd8ed1ab_2 conda-forge
anyio 4.13.0 pyhcf101f3_0 conda-forge
appnope 0.1.4 pyhd8ed1ab_1 conda-forge
argon2-cffi 25.1.0 pyhd8ed1ab_0 conda-forge
argon2-cffi-bindings 25.1.0 py314h0612a62_2 conda-forge
arrow 1.4.0 pyhcf101f3_0 conda-forge
asttokens 3.0.1 pyhd8ed1ab_0 conda-forge
async-lru 2.3.0 pyhcf101f3_0 conda-forge
attrs 26.1.0 pyhcf101f3_0 conda-forge
babel 2.18.0 pyhcf101f3_1 conda-forge
backports.zstd 1.5.0 py314h680f03e_0 conda-forge
beautifulsoup4 4.14.3 pyha770c72_0 conda-forge
bleach 6.3.0 pyhcf101f3_1 conda-forge
bleach-with-css 6.3.0 hbca2aae_1 conda-forge
brotli-python 1.2.0 py314h3daef5d_1 conda-forge
bzip2 1.0.8 hd037594_9 conda-forge
ca-certificates 2026.5.20 hbd8a1cb_0 conda-forge
cached-property 1.5.2 hd8ed1ab_1 conda-forge
cached_property 1.5.2 pyha770c72_1 conda-forge
certifi 2026.5.20 pyhd8ed1ab_0 conda-forge
cffi 2.0.0 py314h44086f9_1 conda-forge
charset-normalizer 3.4.7 pyhd8ed1ab_0 conda-forge
comm 0.2.3 pyhe01879c_0 conda-forge
cpython 3.14.5 py314hd8ed1ab_100 conda-forge
debugpy 1.8.20 py314he609de1_0 conda-forge
decorator 5.3.1 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
exceptiongroup 1.3.1 pyhd8ed1ab_0 conda-forge
executing 2.2.1 pyhd8ed1ab_0 conda-forge
fqdn 1.5.1 pyhd8ed1ab_1 conda-forge
h11 0.16.0 pyhcf101f3_1 conda-forge
h2 4.3.0 pyhcf101f3_0 conda-forge
hpack 4.1.0 pyhd8ed1ab_0 conda-forge
httpcore 1.0.9 pyh29332c3_0 conda-forge
httpx 0.28.1 pyhd8ed1ab_0 conda-forge
hyperframe 6.1.0 pyhd8ed1ab_0 conda-forge
idna 3.17 pyhcf101f3_0 conda-forge
importlib-metadata 9.0.0 pyhcf101f3_0 conda-forge
ipykernel 7.2.0 pyh5552912_1 conda-forge
ipython 9.14.0 pyh53cf698_0 conda-forge
ipython_pygments_lexers 1.1.1 pyhd8ed1ab_0 conda-forge
ipywidgets 8.1.8 pypi_0 pypi
isoduration 20.11.0 pyhd8ed1ab_1 conda-forge
jedi 0.19.2 pyhd8ed1ab_1 conda-forge
jinja2 3.1.6 pyhcf101f3_1 conda-forge
json5 0.14.0 pyhd8ed1ab_0 conda-forge
jsonpointer 3.1.1 pyhcf101f3_0 conda-forge
jsonschema 4.26.0 pyhcf101f3_0 conda-forge
jsonschema-specifications 2025.9.1 pyhcf101f3_0 conda-forge
jsonschema-with-format-nongpl 4.26.0 hcf101f3_0 conda-forge
jupyter-lsp 2.3.1 pyhcf101f3_0 conda-forge
jupyter_client 8.8.0 pyhcf101f3_0 conda-forge
jupyter_core 5.9.1 pyhc90fa1f_0 conda-forge
jupyter_events 0.12.1 pyhcf101f3_0 conda-forge
jupyter_server 2.19.0 pyhcf101f3_0 conda-forge
jupyter_server_terminals 0.5.4 pyhcf101f3_0 conda-forge
jupyterlab 4.5.7 pyhd8ed1ab_0 conda-forge
jupyterlab-widgets 3.0.16 pypi_0 pypi
jupyterlab_pygments 0.3.0 pyhd8ed1ab_2 conda-forge
jupyterlab_server 2.28.0 pyhcf101f3_0 conda-forge
krb5 1.22.2 h385eeb1_0 conda-forge
lark 1.3.1 pyhd8ed1ab_0 conda-forge
libcxx 22.1.6 h55c6f16_0 conda-forge
libedit 3.1.20250104 pl5321hafb1f1b_0 conda-forge
libexpat 2.8.1 hf6b4638_0 conda-forge
libffi 3.5.2 hcf2aa1b_0 conda-forge
liblzma 5.8.3 h8088a28_0 conda-forge
libmpdec 4.0.0 h84a0fba_1 conda-forge
libsodium 1.0.22 h1a92334_1 conda-forge
libsqlite 3.53.1 h1b79a29_0 conda-forge
libzlib 1.3.2 h8088a28_2 conda-forge
markupsafe 3.0.3 py314h6e9b3f0_1 conda-forge
matplotlib-inline 0.2.2 pyhd8ed1ab_0 conda-forge
mistune 3.2.1 pyhcf101f3_0 conda-forge
nbclient 0.10.4 pyhd8ed1ab_0 conda-forge
nbconvert-core 7.17.1 pyhcf101f3_0 conda-forge
nbformat 5.10.4 pyhd8ed1ab_1 conda-forge
ncurses 6.6 h1d4f5a5_0 conda-forge
nest-asyncio 1.6.0 pyhd8ed1ab_1 conda-forge
notebook-shim 0.2.4 pyhd8ed1ab_1 conda-forge
openssl 3.6.2 hd24854e_0 conda-forge
overrides 7.7.0 pyhd8ed1ab_1 conda-forge
packaging 26.2 pyhc364b38_0 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parso 0.8.7 pyhcf101f3_0 conda-forge
pexpect 4.9.0 pyhd8ed1ab_1 conda-forge
pip 26.1.1 pyh145f28c_0 conda-forge
platformdirs 4.10.0 pyhcf101f3_0 conda-forge
prometheus_client 0.25.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.52 pyha770c72_0 conda-forge
psutil 7.2.2 py314ha14b1ff_0 conda-forge
ptyprocess 0.7.0 pyhd8ed1ab_1 conda-forge
pure_eval 0.2.3 pyhd8ed1ab_1 conda-forge
pycparser 3.0 pyhcf101f3_0 conda-forge
pygments 2.20.0 pyhd8ed1ab_0 conda-forge
pyobjc-core 12.1 py314h3a4d195_0 conda-forge
pyobjc-framework-cocoa 12.1 py314h36abed7_0 conda-forge
pysocks 1.7.1 pyha55dd90_7 conda-forge
python 3.14.5 h4c637c5_100_cp314 conda-forge
python-dateutil 2.9.0.post0 pyhe01879c_2 conda-forge
python-fastjsonschema 2.21.2 pyhe01879c_0 conda-forge
python-gil 3.14.5 h4df99d1_100 conda-forge
python-json-logger 3.2.1 pyh332efcf_0 conda-forge
python-tzdata 2026.2 pyhd8ed1ab_0 conda-forge
python_abi 3.14 8_cp314 conda-forge
pyyaml 6.0.3 py314h6e9b3f0_1 conda-forge
pyzmq 27.1.0 py312h022ad19_3 conda-forge
readline 8.3 h46df422_0 conda-forge
referencing 0.37.0 pyhcf101f3_0 conda-forge
requests 2.34.2 pyhcf101f3_0 conda-forge
rfc3339-validator 0.1.4 pyhd8ed1ab_1 conda-forge
rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge
rfc3987-syntax 1.1.0 pyhe01879c_1 conda-forge
rpds-py 2026.5.1 py314he1d1ac0_0 conda-forge
send2trash 2.1.0 pyh5552912_1 conda-forge
setuptools 82.0.1 pyh332efcf_0 conda-forge
six 1.17.0 pyhe01879c_1 conda-forge
sniffio 1.3.1 pyhd8ed1ab_2 conda-forge
soupsieve 2.8.4 pyhd8ed1ab_0 conda-forge
stack_data 0.6.3 pyhd8ed1ab_1 conda-forge
terminado 0.18.1 pyhc90fa1f_1 conda-forge
tinycss2 1.4.0 pyhd8ed1ab_0 conda-forge
tk 8.6.13 h010d191_3 conda-forge
tomli 2.4.1 pyhcf101f3_0 conda-forge
tornado 6.5.6 py314h6c2aa35_0 conda-forge
traitlets 5.15.0 pyhcf101f3_0 conda-forge
typing-extensions 4.15.0 h396c80c_0 conda-forge
typing_extensions 4.15.0 pyhcf101f3_0 conda-forge
typing_utils 0.1.0 pyhd8ed1ab_1 conda-forge
tzdata 2025c hc9c84f9_1 conda-forge
uri-template 1.3.0 pyhd8ed1ab_1 conda-forge
urllib3 2.7.0 pyhd8ed1ab_0 conda-forge
wcwidth 0.7.0 pyhd8ed1ab_0 conda-forge
webcolors 25.10.0 pyhd8ed1ab_0 conda-forge
webencodings 0.5.1 pyhd8ed1ab_3 conda-forge
websocket-client 1.9.0 pyhd8ed1ab_0 conda-forge
widgetsnbextension 4.0.15 pypi_0 pypi
yaml 0.2.5 h925e9cb_3 conda-forge
zeromq 4.3.5 h10816f8_11 conda-forge
zipp 4.1.0 pyhcf101f3_0 conda-forge
zstd 1.5.7 hbf9d68e_6 conda-forge

conda env:
name: ipywidgets-test
channels:
- conda-forge
dependencies:
- _python_abi3_support=1.0=hd8ed1ab_2
- anyio=4.13.0=pyhcf101f3_0
- appnope=0.1.4=pyhd8ed1ab_1
- argon2-cffi=25.1.0=pyhd8ed1ab_0
- argon2-cffi-bindings=25.1.0=py314h0612a62_2
- arrow=1.4.0=pyhcf101f3_0
- asttokens=3.0.1=pyhd8ed1ab_0
- async-lru=2.3.0=pyhcf101f3_0
- attrs=26.1.0=pyhcf101f3_0
- babel=2.18.0=pyhcf101f3_1
- backports.zstd=1.5.0=py314h680f03e_0
- beautifulsoup4=4.14.3=pyha770c72_0
- bleach=6.3.0=pyhcf101f3_1
- bleach-with-css=6.3.0=hbca2aae_1
- brotli-python=1.2.0=py314h3daef5d_1
- bzip2=1.0.8=hd037594_9
- ca-certificates=2026.5.20=hbd8a1cb_0
- cached-property=1.5.2=hd8ed1ab_1
- cached_property=1.5.2=pyha770c72_1
- certifi=2026.5.20=pyhd8ed1ab_0
- cffi=2.0.0=py314h44086f9_1
- charset-normalizer=3.4.7=pyhd8ed1ab_0
- comm=0.2.3=pyhe01879c_0
- cpython=3.14.5=py314hd8ed1ab_100
- debugpy=1.8.20=py314he609de1_0
- decorator=5.3.1=pyhd8ed1ab_0
- defusedxml=0.7.1=pyhd8ed1ab_0
- exceptiongroup=1.3.1=pyhd8ed1ab_0
- executing=2.2.1=pyhd8ed1ab_0
- fqdn=1.5.1=pyhd8ed1ab_1
- h11=0.16.0=pyhcf101f3_1
- h2=4.3.0=pyhcf101f3_0
- hpack=4.1.0=pyhd8ed1ab_0
- httpcore=1.0.9=pyh29332c3_0
- httpx=0.28.1=pyhd8ed1ab_0
- hyperframe=6.1.0=pyhd8ed1ab_0
- idna=3.17=pyhcf101f3_0
- importlib-metadata=9.0.0=pyhcf101f3_0
- ipykernel=7.2.0=pyh5552912_1
- ipython=9.14.0=pyh53cf698_0
- ipython_pygments_lexers=1.1.1=pyhd8ed1ab_0
- isoduration=20.11.0=pyhd8ed1ab_1
- jedi=0.19.2=pyhd8ed1ab_1
- jinja2=3.1.6=pyhcf101f3_1
- json5=0.14.0=pyhd8ed1ab_0
- jsonpointer=3.1.1=pyhcf101f3_0
- jsonschema=4.26.0=pyhcf101f3_0
- jsonschema-specifications=2025.9.1=pyhcf101f3_0
- jsonschema-with-format-nongpl=4.26.0=hcf101f3_0
- jupyter-lsp=2.3.1=pyhcf101f3_0
- jupyter_client=8.8.0=pyhcf101f3_0
- jupyter_core=5.9.1=pyhc90fa1f_0
- jupyter_events=0.12.1=pyhcf101f3_0
- jupyter_server=2.19.0=pyhcf101f3_0
- jupyter_server_terminals=0.5.4=pyhcf101f3_0
- jupyterlab=4.5.7=pyhd8ed1ab_0
- jupyterlab_pygments=0.3.0=pyhd8ed1ab_2
- jupyterlab_server=2.28.0=pyhcf101f3_0
- krb5=1.22.2=h385eeb1_0
- lark=1.3.1=pyhd8ed1ab_0
- libcxx=22.1.6=h55c6f16_0
- libedit=3.1.20250104=pl5321hafb1f1b_0
- libexpat=2.8.1=hf6b4638_0
- libffi=3.5.2=hcf2aa1b_0
- liblzma=5.8.3=h8088a28_0
- libmpdec=4.0.0=h84a0fba_1
- libsodium=1.0.22=h1a92334_1
- libsqlite=3.53.1=h1b79a29_0
- libzlib=1.3.2=h8088a28_2
- markupsafe=3.0.3=py314h6e9b3f0_1
- matplotlib-inline=0.2.2=pyhd8ed1ab_0
- mistune=3.2.1=pyhcf101f3_0
- nbclient=0.10.4=pyhd8ed1ab_0
- nbconvert-core=7.17.1=pyhcf101f3_0
- nbformat=5.10.4=pyhd8ed1ab_1
- ncurses=6.6=h1d4f5a5_0
- nest-asyncio=1.6.0=pyhd8ed1ab_1
- notebook-shim=0.2.4=pyhd8ed1ab_1
- openssl=3.6.2=hd24854e_0
- overrides=7.7.0=pyhd8ed1ab_1
- packaging=26.2=pyhc364b38_0
- pandocfilters=1.5.0=pyhd8ed1ab_0
- parso=0.8.7=pyhcf101f3_0
- pexpect=4.9.0=pyhd8ed1ab_1
- pip=26.1.1=pyh145f28c_0
- platformdirs=4.10.0=pyhcf101f3_0
- prometheus_client=0.25.0=pyhd8ed1ab_0
- prompt-toolkit=3.0.52=pyha770c72_0
- psutil=7.2.2=py314ha14b1ff_0
- ptyprocess=0.7.0=pyhd8ed1ab_1
- pure_eval=0.2.3=pyhd8ed1ab_1
- pycparser=3.0=pyhcf101f3_0
- pygments=2.20.0=pyhd8ed1ab_0
- pyobjc-core=12.1=py314h3a4d195_0
- pyobjc-framework-cocoa=12.1=py314h36abed7_0
- pysocks=1.7.1=pyha55dd90_7
- python=3.14.5=h4c637c5_100_cp314
- python-dateutil=2.9.0.post0=pyhe01879c_2
- python-fastjsonschema=2.21.2=pyhe01879c_0
- python-gil=3.14.5=h4df99d1_100
- python-json-logger=3.2.1=pyh332efcf_0
- python-tzdata=2026.2=pyhd8ed1ab_0
- python_abi=3.14=8_cp314
- pyyaml=6.0.3=py314h6e9b3f0_1
- pyzmq=27.1.0=py312h022ad19_3
- readline=8.3=h46df422_0
- referencing=0.37.0=pyhcf101f3_0
- requests=2.34.2=pyhcf101f3_0
- rfc3339-validator=0.1.4=pyhd8ed1ab_1
- rfc3986-validator=0.1.1=pyh9f0ad1d_0
- rfc3987-syntax=1.1.0=pyhe01879c_1
- rpds-py=2026.5.1=py314he1d1ac0_0
- send2trash=2.1.0=pyh5552912_1
- setuptools=82.0.1=pyh332efcf_0
- six=1.17.0=pyhe01879c_1
- sniffio=1.3.1=pyhd8ed1ab_2
- soupsieve=2.8.4=pyhd8ed1ab_0
- stack_data=0.6.3=pyhd8ed1ab_1
- terminado=0.18.1=pyhc90fa1f_1
- tinycss2=1.4.0=pyhd8ed1ab_0
- tk=8.6.13=h010d191_3
- tomli=2.4.1=pyhcf101f3_0
- tornado=6.5.6=py314h6c2aa35_0
- traitlets=5.15.0=pyhcf101f3_0
- typing-extensions=4.15.0=h396c80c_0
- typing_extensions=4.15.0=pyhcf101f3_0
- typing_utils=0.1.0=pyhd8ed1ab_1
- tzdata=2025c=hc9c84f9_1
- uri-template=1.3.0=pyhd8ed1ab_1
- urllib3=2.7.0=pyhd8ed1ab_0
- wcwidth=0.7.0=pyhd8ed1ab_0
- webcolors=25.10.0=pyhd8ed1ab_0
- webencodings=0.5.1=pyhd8ed1ab_3
- websocket-client=1.9.0=pyhd8ed1ab_0
- yaml=0.2.5=h925e9cb_3
- zeromq=4.3.5=h10816f8_11
- zipp=4.1.0=pyhcf101f3_0
- zstd=1.5.7=hbf9d68e_6
- pip:
- ipywidgets==8.1.8
- jupyterlab-widgets==3.0.16
- widgetsnbextension==4.0.15
prefix: /Users/advil/miniforge3/envs/ipywidgets-test

Command Line Output
[I 2026-05-30 14:57:24.998 ServerApp] jupyter_lsp | extension was successfully linked.
[I 2026-05-30 14:57:25.000 ServerApp] jupyter_server_terminals | extension was successfully linked.
[I 2026-05-30 14:57:25.001 ServerApp] jupyterlab | extension was successfully linked.
[I 2026-05-30 14:57:25.257 ServerApp] notebook_shim | extension was successfully linked.
[I 2026-05-30 14:57:25.274 ServerApp] notebook_shim | extension was successfully loaded.
[I 2026-05-30 14:57:25.275 ServerApp] jupyter_lsp | extension was successfully loaded.
[I 2026-05-30 14:57:25.276 ServerApp] jupyter_server_terminals | extension was successfully loaded.
[I 2026-05-30 14:57:25.277 LabApp] JupyterLab extension loaded from /Users/advil/miniforge3/envs/ipywidgets-test/lib/python3.14/site-packages/jupyterlab
[I 2026-05-30 14:57:25.277 LabApp] JupyterLab application directory is /Users/advil/miniforge3/envs/ipywidgets-test/share/jupyter/lab
[I 2026-05-30 14:57:25.278 LabApp] Extension Manager is 'pypi'.
[I 2026-05-30 14:57:25.301 ServerApp] jupyterlab | extension was successfully loaded.
[I 2026-05-30 14:57:25.302 ServerApp] The port 8888 is already in use, trying another port.
[I 2026-05-30 14:57:25.302 ServerApp] The port 8889 is already in use, trying another port.
[I 2026-05-30 14:57:25.302 ServerApp] Serving notebooks from local directory: /Users/advil/Dropbox/Projects/lexicon/proto-26/notebooks/tmp
[I 2026-05-30 14:57:25.302 ServerApp] Jupyter Server 2.19.0 is running at:
[I 2026-05-30 14:57:25.302 ServerApp] http://localhost:8890/lab?token=5e9aea8c851e33769d4aa944f7d35931d29d2d50469144aa
[I 2026-05-30 14:57:25.302 ServerApp]     http://127.0.0.1:8890/lab?token=5e9aea8c851e33769d4aa944f7d35931d29d2d50469144aa
[I 2026-05-30 14:57:25.302 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 2026-05-30 14:57:25.305 ServerApp] 
To access the server, open this file in a browser:
    file:/Users/advil/Library/Jupyter/runtime/jpserver-7342-open.html
Or copy and paste one of these URLs:
    http://localhost:8890/lab?token=5e9aea8c851e33769d4aa944f7d35931d29d2d50469144aa
    http://127.0.0.1:8890/lab?token=5e9aea8c851e33769d4aa944f7d35931d29d2d50469144aa

[I 2026-05-30 14:57:25.316 ServerApp] Skipped non-installed server(s): basedpyright, bash-language-server, dockerfile-language-server-nodejs, javascript-typescript-langserver, jedi-language-server, julia-language-server, pyrefly, pyright, python-language-server, python-lsp-server, r-languageserver, sql-language-server, texlab, typescript-language-server, unified-language-server, vscode-css-languageserver-bin, vscode-html-languageserver-bin, vscode-json-languageserver-bin, yaml-language-server
[W 2026-05-30 14:57:27.718 LabApp] Could not determine jupyterlab build status without nodejs
[I 2026-05-30 14:57:32.055 ServerApp] Kernel started: 83909f97-efe5-446c-b2a0-723a29a8aad6
[I 2026-05-30 14:57:32.693 ServerApp] Adapting from protocol version 5.3 (kernel 83909f97-efe5-446c-b2a0-723a29a8aad6) to 5.4 (client).
[I 2026-05-30 14:57:32.693 ServerApp] Connecting to kernel 83909f97-efe5-446c-b2a0-723a29a8aad6.
[W 2026-05-30 14:57:32.695 ServerApp] The websocket_ping_timeout (90000) cannot be longer than the websocket_ping_interval (30000).
Setting websocket_ping_timeout=30000
[I 2026-05-30 14:57:32.697 ServerApp] Adapting from protocol version 5.3 (kernel 83909f97-efe5-446c-b2a0-723a29a8aad6) to 5.4 (client).
[I 2026-05-30 14:57:32.697 ServerApp] Connecting to kernel 83909f97-efe5-446c-b2a0-723a29a8aad6.
[I 2026-05-30 14:57:32.700 ServerApp] Adapting from protocol version 5.3 (kernel 83909f97-efe5-446c-b2a0-723a29a8aad6) to 5.4 (client).
[I 2026-05-30 14:57:32.701 ServerApp] Connecting to kernel 83909f97-efe5-446c-b2a0-723a29a8aad6.
[W 2026-05-30 14:57:32.710 ServerApp] Got events for closed stream <zmq.eventloop.zmqstream.ZMQStream object at 0x10b199090>
[I 2026-05-30 14:59:31.974 ServerApp] Saving file at /Untitled.ipynb

Nothing in the browser console log.

If using JupyterLab

  • JupyterLab version: 4.5.7
Installed Labextensions
        jupyterlab_pygments v0.3.0 enabled OK (python, jupyterlab_pygments)
        @jupyter-widgets/jupyterlab-manager v5.0.15 enabled OK (python, jupyterlab_widgets)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions