Jupyter Notebook 'zmq message arrived on closed channel' Error

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! :slight_smile:

Environment:

macOS v12.6.3
Firefox v109.0.1

Output of jupyer --version

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

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:

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

Python traceback:

[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
4 Likes

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

2 Likes

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

1 Like

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

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

[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
1 Like

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

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.

3 Likes

jupyter 8.0.2

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

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.

6 Likes

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?

1 Like

Hey folks,

Experiencing the same problem in:

!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

{
	"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
}

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

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

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

1 Like

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

1 Like

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.

3 Likes

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
2 Likes

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

I also resolved this problem by downgrading tornado and jupyterlab:

pip install jupyterlab==3.0.0 tornado==6.1
1 Like

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

1 Like