# Jupyter Notebook 'zmq message arrived on closed channel' Error

**URL:** <https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869>\
**Category:** Notebook\
**Created:** [February 6, 2023, 7:32pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869 "2023-02-06T19:32:57Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![UnCupoDeCafe](https://avatars.discourse-cdn.com/v4/letter/u/8dc957/32.png) [@UnCupoDeCafe](https://discourse.jupyter.org/u/UnCupoDeCafe)\
**Post date:** [February 6, 2023, 7:32pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/1 "2023-02-06T19:32:57Z")

</div>

Dear all,

I’ve recently begun to experience near constant zmq/tornado errors when running Jupyter notebook from my conda environment (Jupyter, conda env, and traceback details below). When the error occurs, code cells in the Jupyter Notebook fail to either run entirely and/or the cells run but the output does not get printed to the Notebook.

The same error also occurs while using JupyterLab but seemingly less frequently. On occasion, Jupyter will run for several hours without exhibiting the issue while in other instances the error starts occurring immediately after a Notebook is started.

I would really appreciate any suggestions for resolving the issue and/or where to post for further help. Thanks so much! 🙂

Environment:

macOS v12.6.3  
Firefox v109.0.1

Output of `jupyer --version`

```auto
IPython : 8.9.0
ipykernel : 6.21.1
ipywidgets : 8.0.4
jupyter_client : 8.0.2
jupyter_core : 5.2.0
jupyter_server : 2.2.1
jupyterlab : 3.5.3
nbclient : 0.7.2
nbconvert : 7.2.9
nbformat : 5.7.3
notebook : 6.5.2
qtconsole : 5.4.0
traitlets : 5.9.0

```

Output of `conda --list`

```auto
anyio 3.6.2 pyhd8ed1ab_0 conda-forge
appdirs 1.4.4 pyh9f0ad1d_0 conda-forge
appnope 0.1.3 pyhd8ed1ab_0 conda-forge
argon2-cffi 21.3.0 pyhd8ed1ab_0 conda-forge
argon2-cffi-bindings 21.2.0 py311h5547dcb_3 conda-forge
arrow-cpp 11.0.0 h694c41f_2_cpu conda-forge
asttokens 2.2.1 pyhd8ed1ab_0 conda-forge
attrs 22.2.0 pyh71513ae_0 conda-forge
aws-c-auth 0.6.23 hb2f45f0_1 conda-forge
aws-c-cal 0.5.20 h3aaaed9_4 conda-forge
aws-c-common 0.8.9 hb7f2c08_0 conda-forge
aws-c-compression 0.2.16 h980c674_1 conda-forge
aws-c-event-stream 0.2.18 h947c3fe_2 conda-forge
aws-c-http 0.7.3 h9091ec1_1 conda-forge
aws-c-io 0.13.14 h666a9c8_3 conda-forge
aws-c-mqtt 0.8.6 h2814666_1 conda-forge
aws-c-s3 0.2.3 h24f324c_3 conda-forge
aws-c-sdkutils 0.1.7 h980c674_1 conda-forge
aws-checksums 0.1.14 h980c674_1 conda-forge
aws-crt-cpp 0.18.16 ha2465d3_13 conda-forge
aws-sdk-cpp 1.10.57 hcf18aa8_2 conda-forge
babel 2.11.0 pyhd8ed1ab_0 conda-forge
backcall 0.2.0 pyh9f0ad1d_0 conda-forge
backports 1.0 pyhd8ed1ab_3 conda-forge
backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge
beautifulsoup4 4.11.2 pyha770c72_0 conda-forge
bleach 6.0.0 pyhd8ed1ab_0 conda-forge
blosc 1.21.2 hebb52c4_0 conda-forge
brotli 1.0.9 hb7f2c08_8 conda-forge
brotli-bin 1.0.9 hb7f2c08_8 conda-forge
brotlipy 0.7.0 py311h5547dcb_1005 conda-forge
bzip2 1.0.8 h0d85af4_4 conda-forge
c-ares 1.18.1 h0d85af4_0 conda-forge
ca-certificates 2022.12.7 h033912b_0 conda-forge
cached-property 1.5.2 hd8ed1ab_1 conda-forge
cached_property 1.5.2 pyha770c72_1 conda-forge
certifi 2022.12.7 pyhd8ed1ab_0 conda-forge
cffi 1.15.1 py311ha86e640_3 conda-forge
charset-normalizer 2.1.1 pyhd8ed1ab_0 conda-forge
colorama 0.4.6 pyhd8ed1ab_0 conda-forge
comm 0.1.2 pyhd8ed1ab_0 conda-forge
contourpy 1.0.7 py311hd2070f0_0 conda-forge
cryptography 39.0.0 py311h61927ef_0 conda-forge
curl 7.87.0 h6df9250_0 conda-forge
cycler 0.11.0 pyhd8ed1ab_0 conda-forge
debugpy 1.6.6 py311h814d153_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
entrypoints 0.4 pyhd8ed1ab_0 conda-forge
executing 1.2.0 pyhd8ed1ab_0 conda-forge
expat 2.5.0 hf0c8a7f_0 conda-forge
flit-core 3.8.0 pyhd8ed1ab_0 conda-forge
fonttools 4.38.0 py311h5547dcb_1 conda-forge
freetype 2.12.1 h3f81eb7_1 conda-forge
future 0.18.3 pyhd8ed1ab_0 conda-forge
gettext 0.21.1 h8a4c099_0 conda-forge
gflags 2.2.2 hb1e8313_1004 conda-forge
git 2.39.1 pl5321h0195497_0 conda-forge
glib 2.74.1 hbc0c0cd_1 conda-forge
glib-tools 2.74.1 hbc0c0cd_1 conda-forge
glog 0.6.0 h8ac2a54_0 conda-forge
gst-plugins-base 1.21.3 h37e1711_1 conda-forge
gstreamer 1.21.3 h1d18e73_1 conda-forge
h5py 3.8.0 nompi_py311h777de7a_100 conda-forge
hdf5 1.12.2 nompi_h48135f9_101 conda-forge
icu 70.1 h96cf925_0 conda-forge
idna 3.4 pyhd8ed1ab_0 conda-forge
importlib-metadata 6.0.0 pyha770c72_0 conda-forge
importlib_metadata 6.0.0 hd8ed1ab_0 conda-forge
importlib_resources 5.10.2 pyhd8ed1ab_0 conda-forge
ipykernel 6.21.1 pyh736e0ef_0 conda-forge
ipython 8.9.0 pyhd1c38e8_0 conda-forge
ipython_genutils 0.2.0 py_1 conda-forge
ipywidgets 8.0.4 pyhd8ed1ab_0 conda-forge
jedi 0.18.2 pyhd8ed1ab_0 conda-forge
jinja2 3.1.2 pyhd8ed1ab_1 conda-forge
joblib 1.2.0 pyhd8ed1ab_0 conda-forge
jpeg 9e hac89ed1_2 conda-forge
json5 0.9.5 pyh9f0ad1d_0 conda-forge
jsonschema 4.17.3 pyhd8ed1ab_0 conda-forge
jupyter 1.0.0 py311h6eed73b_8 conda-forge
jupyter_client 8.0.2 pyhd8ed1ab_0 conda-forge
jupyter_console 6.4.4 pyhd8ed1ab_0 conda-forge
jupyter_core 5.2.0 py311h6eed73b_0 conda-forge
jupyter_events 0.6.3 pyhd8ed1ab_0 conda-forge
jupyter_server 2.2.1 pyhd8ed1ab_0 conda-forge
jupyter_server_terminals 0.4.4 pyhd8ed1ab_1 conda-forge
jupyterlab 3.5.3 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.2.2 pyhd8ed1ab_0 conda-forge
jupyterlab_server 2.19.0 pyhd8ed1ab_0 conda-forge
jupyterlab_widgets 3.0.5 pyhd8ed1ab_0 conda-forge
kiwisolver 1.4.4 py311hd2070f0_1 conda-forge
krb5 1.20.1 h049b76e_0 conda-forge
lcms2 2.14 h29502cd_1 conda-forge
lerc 4.0.0 hb486fe8_0 conda-forge
libabseil 20220623.0 cxx17_h844d122_6 conda-forge
libaec 1.0.6 hf0c8a7f_1 conda-forge
libarrow 11.0.0 hf6017ac_2_cpu conda-forge
libblas 3.9.0 16_osx64_openblas conda-forge
libbrotlicommon 1.0.9 hb7f2c08_8 conda-forge
libbrotlidec 1.0.9 hb7f2c08_8 conda-forge
libbrotlienc 1.0.9 hb7f2c08_8 conda-forge
libcblas 3.9.0 16_osx64_openblas conda-forge
libclang 13.0.1 default_he082bbe_0 conda-forge
libcrc32c 1.1.2 he49afe7_0 conda-forge
libcurl 7.87.0 h6df9250_0 conda-forge
libcxx 14.0.6 hccf4f1f_0 conda-forge
libdeflate 1.17 hac1461d_0 conda-forge
libedit 3.1.20191231 h0678c8f_2 conda-forge
libev 4.33 haf1e3a3_1 conda-forge
libevent 2.1.10 h7d65743_4 conda-forge
libffi 3.4.2 h0d85af4_5 conda-forge
libgfortran 5.0.0 11_3_0_h97931a8_27 conda-forge
libgfortran5 11.3.0 h082f757_27 conda-forge
libglib 2.74.1 h4c723e1_1 conda-forge
libgoogle-cloud 2.7.0 hb5e37a9_0 conda-forge
libgrpc 1.51.1 h1ddfa78_1 conda-forge
libiconv 1.17 hac89ed1_0 conda-forge
liblapack 3.9.0 16_osx64_openblas conda-forge
libllvm13 13.0.1 h64f94b2_2 conda-forge
libnghttp2 1.51.0 he2ab024_0 conda-forge
libogg 1.3.4 h35c211d_1 conda-forge
libopenblas 0.3.21 openmp_h429af6e_3 conda-forge
libopus 1.3.1 hc929b4f_1 conda-forge
libpng 1.6.39 ha978bb4_0 conda-forge
libpq 15.1 h3640bf0_3 conda-forge
libprotobuf 3.21.12 hbc0c0cd_0 conda-forge
libsodium 1.0.18 hbcb3906_1 conda-forge
libsqlite 3.40.0 ha978bb4_0 conda-forge
libssh2 1.10.0 h47af595_3 conda-forge
libthrift 0.16.0 h16802d8_2 conda-forge
libtiff 4.5.0 hee9004a_2 conda-forge
libutf8proc 2.8.0 hb7f2c08_0 conda-forge
libvorbis 1.3.7 h046ec9c_0 conda-forge
libwebp-base 1.2.4 h775f41a_0 conda-forge
libxcb 1.13 h0d85af4_1004 conda-forge
libzlib 1.2.13 hfd90126_4 conda-forge
llvm-openmp 15.0.7 h61d9ccf_0 conda-forge
lz4-c 1.9.4 hf0c8a7f_0 conda-forge
markupsafe 2.1.2 py311h5547dcb_0 conda-forge
matplotlib 3.6.3 py311h6eed73b_0 conda-forge
matplotlib-base 3.6.3 py311h2bf763f_0 conda-forge
matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge
mistune 2.0.4 pyhd8ed1ab_0 conda-forge
munkres 1.1.4 pyh9f0ad1d_0 conda-forge
mysql-common 8.0.31 hc4b2c72_0 conda-forge
mysql-libs 8.0.31 h8658499_0 conda-forge
nbclassic 0.5.1 pyhd8ed1ab_0 conda-forge
nbclient 0.7.2 pyhd8ed1ab_0 conda-forge
nbconvert 7.2.9 pyhd8ed1ab_0 conda-forge
nbconvert-core 7.2.9 pyhd8ed1ab_0 conda-forge
nbconvert-pandoc 7.2.9 pyhd8ed1ab_0 conda-forge
nbformat 5.7.3 pyhd8ed1ab_0 conda-forge
ncurses 6.3 h96cf925_1 conda-forge
nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge
notebook 6.5.2 pyha770c72_1 conda-forge
notebook-shim 0.2.2 pyhd8ed1ab_0 conda-forge
nspr 4.35 hea0b92c_0 conda-forge
nss 3.78 ha8197d3_0 conda-forge
numexpr 2.8.3 py311hd84f3f5_1 conda-forge
numpy 1.24.2 py311ha9d2c9f_0 conda-forge
openjpeg 2.5.0 h13ac156_2 conda-forge
openssl 3.0.7 hfd90126_2 conda-forge
orc 1.8.2 ha9d861c_2 conda-forge
packaging 23.0 pyhd8ed1ab_0 conda-forge
pandas 1.5.3 py311hd84f3f5_0 conda-forge
pandoc 2.19.2 h694c41f_1 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
parquet-cpp 1.5.1 2 conda-forge
parso 0.8.3 pyhd8ed1ab_0 conda-forge
patsy 0.5.3 pyhd8ed1ab_0 conda-forge
pcre2 10.40 h1c4e4bc_0 conda-forge
perl 5.32.1 2_h0d85af4_perl5 conda-forge
pexpect 4.8.0 pyh1a96a4e_2 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 9.4.0 py311h5bae705_1 conda-forge
pip 23.0 pyhd8ed1ab_0 conda-forge
pkgutil-resolve-name 1.3.10 pyhd8ed1ab_0 conda-forge
platformdirs 2.6.2 pyhd8ed1ab_0 conda-forge
ply 3.11 py_1 conda-forge
pooch 1.6.0 pyhd8ed1ab_0 conda-forge
prometheus_client 0.16.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.36 pyha770c72_0 conda-forge
prompt_toolkit 3.0.36 hd8ed1ab_0 conda-forge
psutil 5.9.4 py311h5547dcb_0 conda-forge
pthread-stubs 0.4 hc929b4f_1001 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge
pyarrow 11.0.0 py311hb17b21d_2_cpu conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pygments 2.14.0 pyhd8ed1ab_0 conda-forge
pymatreader 0.0.30 pyhd8ed1ab_0 conda-forge
pyopenssl 23.0.0 pyhd8ed1ab_0 conda-forge
pyparsing 3.0.9 pyhd8ed1ab_0 conda-forge
pyqt 5.15.7 py311h8771221_3 conda-forge
pyqt5-sip 12.11.0 py311h78fa98d_3 conda-forge
pyrsistent 0.19.3 py311h5547dcb_0 conda-forge
pysocks 1.7.1 pyha2e5f31_6 conda-forge
pytables 3.7.0 py311ha9b306f_3 conda-forge
python 3.11.0 he7542f4_1_cpython conda-forge
python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge
python-fastjsonschema 2.16.2 pyhd8ed1ab_0 conda-forge
python-json-logger 2.0.4 pyhd8ed1ab_0 conda-forge
python_abi 3.11 3_cp311 conda-forge
pytz 2022.7.1 pyhd8ed1ab_0 conda-forge
pyyaml 6.0 py311h5547dcb_5 conda-forge
pyzmq 25.0.0 py311habfacb3_0 conda-forge
qt-main 5.15.6 haeff654_6 conda-forge
qtconsole 5.4.0 pyhd8ed1ab_0 conda-forge
qtconsole-base 5.4.0 pyha770c72_0 conda-forge
qtpy 2.3.0 pyhd8ed1ab_0 conda-forge
re2 2023.02.01 hf0c8a7f_0 conda-forge
readline 8.1.2 h3899abd_0 conda-forge
requests 2.28.2 pyhd8ed1ab_0 conda-forge
rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge
rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge
scikit-learn 1.2.1 py311h087fafe_0 conda-forge
scipy 1.10.0 py311h939689b_2 conda-forge
seaborn 0.12.2 hd8ed1ab_0 conda-forge
seaborn-base 0.12.2 pyhd8ed1ab_0 conda-forge
send2trash 1.8.0 pyhd8ed1ab_0 conda-forge
setuptools 67.1.0 pyhd8ed1ab_0 conda-forge
sip 6.7.7 py311h814d153_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
snappy 1.1.9 h225ccf5_2 conda-forge
sniffio 1.3.0 pyhd8ed1ab_0 conda-forge
soupsieve 2.3.2.post1 pyhd8ed1ab_0 conda-forge
sqlite 3.40.0 h9ae0607_0 conda-forge
stack_data 0.6.2 pyhd8ed1ab_0 conda-forge
statsmodels 0.13.5 py311hd5badaa_2 conda-forge
terminado 0.17.1 pyhd1c38e8_0 conda-forge
threadpoolctl 3.1.0 pyh8a188c0_0 conda-forge
tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge
tk 8.6.12 h5dbffcc_0 conda-forge
toml 0.10.2 pyhd8ed1ab_0 conda-forge
tomli 2.0.1 pyhd8ed1ab_0 conda-forge
tornado 6.2 py311h5547dcb_1 conda-forge
tqdm 4.64.1 pyhd8ed1ab_0 conda-forge
traitlets 5.9.0 pyhd8ed1ab_0 conda-forge
typing-extensions 4.4.0 hd8ed1ab_0 conda-forge
typing_extensions 4.4.0 pyha770c72_0 conda-forge
tzdata 2022g h191b570_0 conda-forge
urllib3 1.26.14 pyhd8ed1ab_0 conda-forge
wcwidth 0.2.6 pyhd8ed1ab_0 conda-forge
webencodings 0.5.1 py_1 conda-forge
websocket-client 1.5.1 pyhd8ed1ab_0 conda-forge
wheel 0.38.4 pyhd8ed1ab_0 conda-forge
widgetsnbextension 4.0.5 pyhd8ed1ab_0 conda-forge
xmltodict 0.13.0 pyhd8ed1ab_0 conda-forge
xorg-libxau 1.0.9 h35c211d_0 conda-forge
xorg-libxdmcp 1.1.3 h35c211d_0 conda-forge
xz 5.2.6 h775f41a_0 conda-forge
yaml 0.2.5 h0d85af4_2 conda-forge
zeromq 4.3.4 he49afe7_1 conda-forge
zipp 3.12.1 pyhd8ed1ab_0 conda-forge
zlib 1.2.13 hfd90126_4 conda-forge
zstd 1.5.2 hbc0c0cd_6 conda-forge

```

Error printed to Jupyter’s console:

```auto
[W 09:29:18.681 NotebookApp] zmq message arrived on closed channel

```

Python traceback:

```auto
[E 09:29:38.352 NotebookApp] Uncaught exception in ZMQStream callback
    Traceback (most recent call last):
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 584, in _run_callback
        f = callback(*args, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 308, in stream_callback
        return callback(self, msg)
               ^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/notebook/services/kernels/handlers.py", line 572, in _on_zmq_reply
        super()._on_zmq_reply(stream, msg)
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/notebook/base/zmqhandlers.py", line 256, in _on_zmq_reply
        self.write_message(msg, binary=isinstance(msg, bytes))
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 339, in write_message
        return self.ws_connection.write_message(message, binary=binary)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 1086, in write_message
        fut = self._write_frame(True, opcode, message, flags=flags)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 1061, in _write_frame
        return self.stream.write(frame)
               ^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 546, in write
        self._handle_write()
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 182, in advance
        assert 0 < size <= self._size
    AssertionError
[E 09:29:38.357 NotebookApp] Uncaught exception in zmqstream callback
    Traceback (most recent call last):
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 621, in _handle_events
        self._handle_recv()
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 650, in _handle_recv
        self._run_callback(callback, msg)
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 584, in _run_callback
        f = callback(*args, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 308, in stream_callback
        return callback(self, msg)
               ^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/notebook/services/kernels/handlers.py", line 572, in _on_zmq_reply
        super()._on_zmq_reply(stream, msg)
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/notebook/base/zmqhandlers.py", line 256, in _on_zmq_reply
        self.write_message(msg, binary=isinstance(msg, bytes))
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 339, in write_message
        return self.ws_connection.write_message(message, binary=binary)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 1086, in write_message
        fut = self._write_frame(True, opcode, message, flags=flags)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 1061, in _write_frame
        return self.stream.write(frame)
               ^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 546, in write
        self._handle_write()
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 182, in advance
        assert 0 < size <= self._size
    AssertionError
[E 09:29:38.358 NotebookApp] Exception in callback functools.partial(<function ZMQStream._update_handler.<locals>.<lambda> at 0x1086751c0>)
    Traceback (most recent call last):
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/ioloop.py", line 740, in _run_callback
        ret = callback()
              ^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 705, in <lambda>
        self.io_loop.add_callback(lambda: self._handle_events(self.socket, 0))
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 621, in _handle_events
        self._handle_recv()
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 650, in _handle_recv
        self._run_callback(callback, msg)
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 584, in _run_callback
        f = callback(*args, **kwargs)
            ^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/zmq/eventloop/zmqstream.py", line 308, in stream_callback
        return callback(self, msg)
               ^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/notebook/services/kernels/handlers.py", line 572, in _on_zmq_reply
        super()._on_zmq_reply(stream, msg)
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/notebook/base/zmqhandlers.py", line 256, in _on_zmq_reply
        self.write_message(msg, binary=isinstance(msg, bytes))
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 339, in write_message
        return self.ws_connection.write_message(message, binary=binary)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 1086, in write_message
        fut = self._write_frame(True, opcode, message, flags=flags)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/websocket.py", line 1061, in _write_frame
        return self.stream.write(frame)
               ^^^^^^^^^^^^^^^^^^^^^^^^
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 546, in write
        self._handle_write()
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
      File "/Users/data/miniconda3/envs/da/lib/python3.11/site-packages/tornado/iostream.py", line 182, in advance
        assert 0 < size <= self._size
    AssertionError

```

---

<div class="post-metadata">

**Author:** ![mark\_dennis](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/mark_dennis/32/9055_2.png) [@mark\_dennis](https://discourse.jupyter.org/u/mark_dennis)\
**Post date:** [February 7, 2023, 2:12am UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/2 "2023-02-07T02:12:44Z")

</div>

I can confirm that I had the same problems.  
Occasionally, it seems to work anyway after a few kernel restarts.

---

<div class="post-metadata">

**Author:** ![murs006](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/murs006/32/9063_2.png) [@murs006](https://discourse.jupyter.org/u/murs006)\
**Post date:** [February 7, 2023, 6:55pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/3 "2023-02-07T18:55:54Z")

</div>

I’ve the exact same problem with tornado.

Exception in callback None()  
handle:   
Traceback (most recent call last):  
File “C:\Users\Mursalin Kabir\AppData\Local\Programs\Python\Python311\Lib\asyncio\events.py”, line 80, in \_run  
self.\_context.run(self.\_callback, \*self.\_args)  
File “C:\Users\Mursalin Kabir\AppData\Local\Programs\Python\Python311\Lib\site-packages\tornado\platform\asyncio.py”, line 206, in \_handle\_events  
handler\_func(fileobj, events)  
File “C:\Users\Mursalin Kabir\AppData\Local\Programs\Python\Python311\Lib\site-packages\tornado\iostream.py”, line 702, in \_handle\_events  
self.\_handle\_write()  
File “C:\Users\Mursalin Kabir\AppData\Local\Programs\Python\Python311\Lib\site-packages\tornado\iostream.py”, line 976, in \_handle\_write  
self.\_write\_buffer.advance(num\_bytes)  
File “C:\Users\Mursalin Kabir\AppData\Local\Programs\Python\Python311\Lib\site-packages\tornado\iostream.py”, line 182, in advance  
assert 0 \< size \<= self.\_size  
AssertionError

---

<div class="post-metadata">

**Author:** ![Walker\_Rowe](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/walker_rowe/32/9080_2.png) [@Walker\_Rowe](https://discourse.jupyter.org/u/Walker_Rowe)\
**Post date:** [February 10, 2023, 7:17am UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/4 "2023-02-10T07:17:15Z")

</div>

I had same exact problem but then noticed jupyterlab was not installed. So ran this. (Now wondering that jupyterlab since I could run jupyter notebook and run and create notebooks). Using Mac M1 OS 12.6.3.

pip install jupyterlab

jupyter --version  
Selected Jupyter core packages…  
IPython : 8.9.0  
ipykernel : 6.21.1  
ipywidgets : 8.0.4  
jupyter\_client : 8.0.2  
jupyter\_core : 5.2.0  
jupyter\_server : 2.2.1  
jupyterlab : 3.6.1  
nbclient : 0.7.2  
nbconvert : 7.2.9  
nbformat : 5.7.3  
notebook : 6.5.2  
qtconsole : 5.4.0  
traitlets : 5.9.0

---

<div class="post-metadata">

**Author:** ![poppigy](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/poppigy/32/9085_2.png) [@poppigy](https://discourse.jupyter.org/u/poppigy)\
**Post date:** [February 10, 2023, 7:23pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/5 "2023-02-10T19:23:13Z")

</div>

Same here when I run Jupyter notebooks. I experience that when running notebooks in a browser, PyCharm, and DataSpell.  
Typical traceback:

```auto
[I 21:19:17.887 NotebookApp] Kernel started: eb870f4c-b929-42ea-be1c-a3a8f46bb83f, name: python3
[E 21:19:25.406 NotebookApp] Uncaught exception, closing connection.
    Traceback (most recent call last):
      File "/opt/homebrew/lib/python3.10/site-packages/tornado/iostream.py", line 702, in _handle_events
        self._handle_write()
      File "/opt/homebrew/lib/python3.10/site-packages/tornado/iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
      File "/opt/homebrew/lib/python3.10/site-packages/tornado/iostream.py", line 182, in advance
        assert 0 < size <= self._size
    AssertionError
[W 21:19:25.409 NotebookApp] zmq message arrived on closed channel
Exception in callback None()
handle: <Handle cancelled>
Traceback (most recent call last):
  File "/opt/homebrew/Cellar/python@3.10/3.10.9/Frameworks/Python.framework/Versions/3.10/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/opt/homebrew/lib/python3.10/site-packages/tornado/platform/asyncio.py", line 206, in _handle_events
    handler_func(fileobj, events)
  File "/opt/homebrew/lib/python3.10/site-packages/tornado/iostream.py", line 702, in _handle_events
    self._handle_write()
  File "/opt/homebrew/lib/python3.10/site-packages/tornado/iostream.py", line 976, in _handle_write
    self._write_buffer.advance(num_bytes)
  File "/opt/homebrew/lib/python3.10/site-packages/tornado/iostream.py", line 182, in advance
    assert 0 < size <= self._size
AssertionError
[I 21:19:25.410 NotebookApp] Starting buffering for eb870f4c-b929-42ea-be1c-a3a8f46bb83f:a90834f983ea4057a4d652f52b3b2b1d
[I 21:19:26.514 NotebookApp] Restoring connection for eb870f4c-b929-42ea-be1c-a3a8f46bb83f:a90834f983ea4057a4d652f52b3b2b1d

```

---

<div class="post-metadata">

**Author:** ![Chris\_Brinkman](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/chris_brinkman/32/9100_2.png) [@Chris\_Brinkman](https://discourse.jupyter.org/u/Chris_Brinkman)\
**Post date:** [February 13, 2023, 5:56am UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/6 "2023-02-13T05:56:16Z")

</div>

Same problem as everyone else. I did install jupyterlab, in addition to jupyter, but it made no difference.

---

<div class="post-metadata">

**Author:** ![HojinCho](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/hojincho/32/9116_2.png) [@HojinCho](https://discourse.jupyter.org/u/HojinCho)\
**Post date:** [February 14, 2023, 4:17am UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/7 "2023-02-14T04:17:39Z")

</div>

A similar problem here, and I noticed this issue when using `%matplotlib notebook`.

Specifically, when I tried to adjust the plot using the pan/zoom tools in the `matplotlib` figure, this “Assertion Error” popped up in the terminal and the kernel seems to disconnect for several seconds, and the figure widget becomes broken at that point.

Edit)  
This problem happens with jupyter 8.0.2 and tornado 6.2. If I roll back the tornado to 6.1, and consequently the jupyter 7.3.2, this problem does not occur.

---

<div class="post-metadata">

**Author:** ![krassowski](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/krassowski/32/1685_2.png) [@krassowski](https://discourse.jupyter.org/u/krassowski)\
**Post date:** [February 16, 2023, 6:46pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/8 "2023-02-16T18:46:11Z")

</div>

> jupyter 8.0.2

What is this version referring to exactly? Jupyter Notebook is currently on 6.x and 7.0 is in development.

---

<div class="post-metadata">

**Author:** ![John\_Erik\_Sloper](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/john_erik_sloper/32/8883_2.png) [@John\_Erik\_Sloper](https://discourse.jupyter.org/u/John_Erik_Sloper)\
**Post date:** [February 16, 2023, 9:44pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/9 "2023-02-16T21:44:48Z")

</div>

That refers to the jupyter-client package.

I am also experiencing this very frustrating issue and for me it was also “resolved” by reverting to jupyter-client==7.3.2 and tornado=6.1.

---

<div class="post-metadata">

**Author:** ![jgiret](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/jgiret/32/9169_2.png) [@jgiret](https://discourse.jupyter.org/u/jgiret)\
**Post date:** [February 21, 2023, 12:39pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/10 "2023-02-21T12:39:27Z")

</div>

Hello,

I got the same issue with tornado==6.2 and jupyter-client==8.0.2, while using TLJH. Seems that downgrading to tornado==6.1, and jupyter-client==7.3.2 remove the issue.

Any idea where it comes from?

---

<div class="post-metadata">

**Author:** ![roma-glushko](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/roma-glushko/32/6227_2.png) [@roma-glushko](https://discourse.jupyter.org/u/roma-glushko)\
**Post date:** [March 2, 2023, 11:18am UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/11 "2023-03-02T11:18:15Z")

</div>

Hey folks,

Experiencing the same problem in:

```auto
!jupyter --version
Selected Jupyter core packages...
IPython : 8.10.0
ipykernel : 6.21.2
nbconvert : 7.2.9
nbformat : 5.7.3
notebook : 6.5.2
qtconsole : not installed
traitlets : 5.9.0

```

- jupyter\_kernel\_gateway==2.5.1

Have anyone found any workaround for it?

I have come up with the following notebook that seems to produce the issue for me after a few cold reruns

```auto
{
	"cells": [
		{
			"id": "640062f616382ab807bf4e95",
			"cell_type": "code",
			"source": "!pip install Pillow==9.3.0 timm==0.6.12 torch==1.13.1 transformers==4.26.1",
			"metadata": {
				"collapsed": false,
				"scrolled": false,
				"datarobot": {
					"language": "python"
				},
				"hide_code": false,
				"hide_results": false,
				"disable_run": false,
				"chart_settings": null,
				"dataframe_view_options": null
			},
			"outputs": [],
			"execution_count": null
		},
		{
			"id": "6400811d16382ab807bf4ef7",
			"cell_type": "code",
			"source": "import os\nimport io\nimport json\nimport torch\nimport shutil\nimport requests\nimport warnings\nfrom PIL import Image\nimport matplotlib.pyplot as plt\nfrom transformers import pipeline\nfrom transformers import DetrImageProcessor, DetrForObjectDetection\n\nwarnings.simplefilter(action='ignore', category=FutureWarning)",
			"metadata": {
				"collapsed": false,
				"scrolled": false,
				"datarobot": {
					"language": "python"
				},
				"hide_code": false,
				"hide_results": false,
				"disable_run": false,
				"chart_settings": null,
				"dataframe_view_options": null
			},
			"outputs": [],
			"execution_count": null
		},
		{
			"id": "64007fef4ec9c1176d9c571c",
			"cell_type": "code",
			"source": "folder_name = \"./\"\nurl = 'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg'\n\nimage_name = \"pipeline-cat-chonk\"\nimage_binary = requests.get(url).content\nimage = Image.open(io.BytesIO(image_binary))\ndisplay(image)\n\n\n\nimage.save(f\"{folder_name}/{image_name}.jpeg\")\n\nwith open(f\"{folder_name}/{image_name}.jpeg\", \"rb\") as file:\n image_binary = file.read()\n with open(f\"{folder_name}/{image_name}.json\", \"w\") as file1:\n json.dump({\"image\":image_binary.decode(\"latin-1\")}, file1, indent=0)",
			"metadata": {
				"name": "テスト画像をロード",
				"collapsed": false,
				"scrolled": false,
				"datarobot": {
					"language": "python"
				},
				"hide_code": false,
				"hide_results": false,
				"disable_run": false,
				"chart_settings": null,
				"dataframe_view_options": null
			},
			"outputs": [],
			"execution_count": null
		}
	],
	"metadata": {
		"kernelspec": {
			"name": "python",
			"language": "python",
			"display_name": "Python 3.9.13"
		},
		"language_info": {
			"name": "python",
			"version": "3.9.13"
		}
	},
	"nbformat": 4,
	"nbformat_minor": 5
}

```

---

<div class="post-metadata">

**Author:** ![miohtama](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/miohtama/32/7571_2.png) [@miohtama](https://discourse.jupyter.org/u/miohtama)\
**Post date:** [March 2, 2023, 1:23pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/12 "2023-03-02T13:23:02Z")

</div>

I downgraded to Tornado 6.1 and the issue still repeats for me.

---

<div class="post-metadata">

**Author:** ![alvaropp](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/alvaropp/32/9286_2.png) [@alvaropp](https://discourse.jupyter.org/u/alvaropp)\
**Post date:** [March 6, 2023, 12:23pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/13 "2023-03-06T12:23:49Z")

</div>

I’ve been getting the same for the last week or two.

---

<div class="post-metadata">

**Author:** ![znudel](https://avatars.discourse-cdn.com/v4/letter/z/6bbea6/32.png) [@znudel](https://discourse.jupyter.org/u/znudel)\
**Post date:** [March 7, 2023, 1:25pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/14 "2023-03-07T13:25:02Z")

</div>

HI all,

Also getting a similar issue. I’ve noticed it exclusively happens to me when displaying matplotlib pyplots using the `%matplotlib notebook` command.

I’ve tried reinstalling notebook, using a fresh virtual environment, etc. But nothing is helping. Will continue investigating

---

<div class="post-metadata">

**Author:** ![alvaropp](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/alvaropp/32/9286_2.png) [@alvaropp](https://discourse.jupyter.org/u/alvaropp)\
**Post date:** [March 7, 2023, 1:37pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/15 "2023-03-07T13:37:17Z")

</div>

For what is worth, it happens to me when I use `%matplotlib inline`, so it does seem related to matplotlib!

---

<div class="post-metadata">

**Author:** ![ipark](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/ipark/32/9324_2.png) [@ipark](https://discourse.jupyter.org/u/ipark)\
**Post date:** [March 8, 2023, 8:28pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/16 "2023-03-08T20:28:02Z")

</div>

I also had problem with matplotlib (if a cell contains matplotlib, cell does not end although every line in cell works).  
Downgrading to Jupyter\_client==7.3.2 and tornado==6.1 works for me.

---

<div class="post-metadata">

**Author:** ![Armcore](https://avatars.discourse-cdn.com/v4/letter/a/cab0a1/32.png) [@Armcore](https://discourse.jupyter.org/u/Armcore)\
**Post date:** [March 12, 2023, 6:33am UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/17 "2023-03-12T06:33:42Z")

</div>

I finally found here… I also have same issue on my M1 Mac.  
My environment is,  
OS Ventura 13.2.1  
VScode 1.76.1  
conda 23.1.0  
Tornado 6.2  
jupyter\_client 8.0.3

It means also same if I use jupyter from VScode.  
**But I when I use exact same tools with same versions in my Linux on Parallels,**  
**it never happen.**

After downgraded my tornado to 6.1, It seems stable sofar…

**`!#sample$ conda install tornado=6.1`**

and conda suggest below, I just installed these with OK.

```
jupyter_client-7.3.4 | pyhd8ed1ab_0 91 KB conda-forge
jupyter_server-1.23.6 | pyhd8ed1ab_0 238 KB conda-forge
tornado-6.1 | py38h33210d7_3 649 KB conda-forge

```

---

<div class="post-metadata">

**Author:** ![jiheechris](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/jiheechris/32/9405_2.png) [@jiheechris](https://discourse.jupyter.org/u/jiheechris)\
**Post date:** [March 17, 2023, 2:47am UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/19 "2023-03-17T02:47:48Z")

</div>

Thanks for your comments! It’s a great help to me.

---

<div class="post-metadata">

**Author:** ![jiheechris](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/jiheechris/32/9405_2.png) [@jiheechris](https://discourse.jupyter.org/u/jiheechris)\
**Post date:** [March 17, 2023, 2:49am UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/20 "2023-03-17T02:49:44Z")

</div>

I also resolved this problem by downgrading tornado and jupyterlab:

```auto
pip install jupyterlab==3.0.0 tornado==6.1

```

---

<div class="post-metadata">

**Author:** ![keyboardAnt](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.jupyter.org/keyboardant/32/9433_2.png) [@keyboardAnt](https://discourse.jupyter.org/u/keyboardAnt)\
**Post date:** [March 19, 2023, 2:14pm UTC](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869/21 "2023-03-19T14:14:17Z")

</div>

For me, this suggested downgrading (`jupyterlab==3.0.0 tornado==6.1`) did not solve the issue (on PyCharm).

[Next page](https://discourse.jupyter.org/t/jupyter-notebook-zmq-message-arrived-on-closed-channel-error/17869.md?page=2)
