Ankihub error

Before the error happened, I was…
[Replace this text.]

Error message (don't change this)
Anki 25.09.2 (3890e12c) (ao)
Python 3.13.5 Qt 6.9.1 PyQt 6.9.1
Platform: macOS-26.3-arm64-arm-64bit-Mach-O

Traceback (most recent call last):

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/urllib3/response.py", line 779, in _error_catcher
    yield

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/urllib3/response.py", line 904, in _raw_read
    data = self._fp_read(amt, read1=read1) if not fp_closed else b""
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/urllib3/response.py", line 887, in _fp_read
    return self._fp.read(amt) if amt is not None else self._fp.read()
           ~~~~~~~~~~~~~^^^^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/http/client.py", line 479, in read
    s = self.fp.read(amt)

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/socket.py", line 719, in readinto
    return self._sock.recv_into(b)
           ~~~~~~~~~~~~~~~~~~~~^^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/ssl.py", line 1304, in recv_into
    return self.read(nbytes, buffer)
           ~~~~~~~~~^^^^^^^^^^^^^^^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/ssl.py", line 1138, in read
    return self._sslobj.read(len, buffer)
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^

ConnectionResetError: [Errno 54] Connection reset by peer


The above exception was the direct cause of the following exception:


Traceback (most recent call last):

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/requests/models.py", line 820, in generate
    yield from self.raw.stream(chunk_size, decode_content=True)

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/urllib3/response.py", line 1091, in stream
    data = self.read(amt=amt, decode_content=decode_content)

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/urllib3/response.py", line 980, in read
    data = self._raw_read(amt)

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/urllib3/response.py", line 903, in _raw_read
    with self._error_catcher():
         ~~~~~~~~~~~~~~~~~~~^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/contextlib.py", line 162, in __exit__
    self.gen.throw(value)
    ~~~~~~~~~~~~~~^^^^^^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/urllib3/response.py", line 806, in _error_catcher
    raise ProtocolError(f"Connection broken: {e!r}", e) from e

urllib3.exceptions.ProtocolError: ("Connection broken: ConnectionResetError(54, 'Connection reset by peer')", ConnectionResetError(54, 'Connection reset by peer'))


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 152, in raise_exception
    raise exception

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 148, in _on_closures_pending
    closure()
    ~~~~~~~^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 88, in <lambda>
    lambda future: self.run_on_main(lambda: on_done(future))
                                            ~~~~~~~^^^^^^^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/operations/__init__.py", line 253, in wrapped_done
    self._failure(exception)
    ~~~~~~~~~~~~~^^^^^^^^^^^

  File "/Users/joshuaang/Library/Application Support/Anki2/addons21/1322529746/gui/media_sync.py", line 63, in on_failure
    raise exception

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/operations/__init__.py", line 243, in wrapped_op
    return self._op(mw.col)
           ~~~~~~~~^^^^^^^^

  File "/Users/joshuaang/Library/Application Support/Anki2/addons21/1322529746/gui/media_sync.py", line 67, in <lambda>
    op=lambda _: self._update_deck_media_and_download_missing_media(),
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^

  File "/Users/joshuaang/Library/Application Support/Anki2/addons21/1322529746/gui/media_sync.py", line 145, in _update_deck_media_and_download_missing_media
    self._client.download_media(missing_media_names, ah_did)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/Users/joshuaang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 586, in download_media
    if future.result():
       ~~~~~~~~~~~~~^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ~~~~~~~~~~~~~~~~~^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)

  File "/Users/joshuaang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 602, in _download_media
    for block in response.iter_content(1024):
                 ~~~~~~~~~~~~~~~~~~~~~^^^^^^

  File "/Users/joshuaang/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/requests/models.py", line 822, in generate
    raise ChunkedEncodingError(e)

requests.exceptions.ChunkedEncodingError: ("Connection broken: ConnectionResetError(54, 'Connection reset by peer')", ConnectionResetError(54, 'Connection reset by peer'))

Sentry link (for developers)

Hello,

This is just a temporary server issue. Everything should be back to normal soon!

Please restart Anki and let us know if you continue to experience this issue! :blush: