🚨 Sync Error Master Thread

Never got to do one of these before; in for giggles. :slight_smile:

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

Error message (don't change this)
Anki 24.11 (97e6b3d3)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.0.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x1349eb7f0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 713, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 144, in _on_closures_pending

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 119, in _on_sync_done
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "concurrent.futures.thread", line 58, in run

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 111, in <lambda>
    task=lambda: ah_deck_updater.update_decks_and_media(to_sync_ah_dids),

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 84, in _update_decks
    should_continue = self._update_single_deck(ah_did)

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 102, in _update_single_deck
    result = self._fetch_and_apply_deck_extension_updates(ankihub_did)

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 184, in _fetch_and_apply_deck_extension_updates
    if not self._download_updates_for_extension(deck_extension):

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 195, in _download_updates_for_extension
    for chunk in self._client.get_deck_extension_updates(

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 1145, in get_deck_extension_updates
    response = self._send_request(

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/brianhavens/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

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

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-14.6-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x34795a4f0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "aqt.taskman", line 86, in <lambda>

  File "aqt.operations", line 252, in wrapped_done

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

  File "concurrent.futures.thread", line 58, in run

  File "aqt.operations", line 242, in wrapped_op

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

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/gui/media_sync.py", line 127, in _update_deck_media_and_download_missing_media
    self._update_deck_media(ankihub_did=ah_did)

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/gui/media_sync.py", line 155, in _update_deck_media
    for chunk in self._client.get_deck_media_updates(

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 863, in get_deck_media_updates
    response = self._send_request(

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/ujwal/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

Normal attempt to sync. Took ages (like 5 min or so) trying to sync before giving the error and quiting the attempt. Definitely think this is related to the current slow speeds on Ankihub.net.

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x13ad11700 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 119, in _on_sync_done
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "concurrent.futures.thread", line 58, in run

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 111, in <lambda>
    task=lambda: ah_deck_updater.update_decks_and_media(to_sync_ah_dids),

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 84, in _update_decks
    should_continue = self._update_single_deck(ah_did)

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 96, in _update_single_deck
    self._update_deck_config(ankihub_did)

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 112, in _update_deck_config
    deck = self._client.get_deck_by_id(ankihub_did)

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 894, in get_deck_by_id
    response = self._send_request(

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/andrewmathias/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

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

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.1.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x13bec5670 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 119, in _on_sync_done
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "concurrent.futures.thread", line 58, in run

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 111, in <lambda>
    task=lambda: ah_deck_updater.update_decks_and_media(to_sync_ah_dids),

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 84, in _update_decks
    should_continue = self._update_single_deck(ah_did)

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 98, in _update_single_deck
    result = self._fetch_and_apply_deck_updates(ankihub_did)

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 120, in _fetch_and_apply_deck_updates
    deck_updates = self._client.get_deck_updates(

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 736, in get_deck_updates
    for chunk in self._get_deck_updates_inner(

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 796, in _get_deck_updates_inner
    response = self._send_request(

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/yzhang/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

Anki no longer automatically syncs with Ankiweb and Ankihub on profile open it only automatically syncs on profile close. When I open the app, the sync button is blue indicating that a normal sync is available but it does not sync automatically. I confirmed that I am signed into Ankiweb and Ankihub and I made sure that the box “Automatically sync on profile open/close” is checked. Once I toggle the AnkiHub add-on off, Anki initiates a collection sync every time upon opening the application. This indicates that the add-on in addition to no longer syncing when the app is opened is also impairing AnkiWeb syncing functionality. Notably, this only appears to occur on my apple-silicon based computer but not on my intel-based computer when running anki with Ankihub. When running anki through the console, I did find the message addons21/1322529746/entry_point.py:289:save() is deprecated: saving is automatic which I am unsure if it is related to the syncing issue but does pertain to the AnkiHub add-on.

1 Like

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

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: Windows-10-10.0.22631

Traceback (most recent call last):

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x23eb29358e0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\gui\menu.py", line 335, in on_done
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\ankihub_sync.py", line 119, in _on_sync_done
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "concurrent.futures.thread", line 58, in run

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\ankihub_sync.py", line 111, in <lambda>
    task=lambda: ah_deck_updater.update_decks_and_media(to_sync_ah_dids),

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 84, in _update_decks
    should_continue = self._update_single_deck(ah_did)

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 98, in _update_single_deck
    result = self._fetch_and_apply_deck_updates(ankihub_did)

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 120, in _fetch_and_apply_deck_updates
    deck_updates = self._client.get_deck_updates(

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 736, in get_deck_updates
    for chunk in self._get_deck_updates_inner(

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 796, in _get_deck_updates_inner
    response = self._send_request(

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "C:\Users\kvyas\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

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

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.0.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x12cab8eb0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/sophiali/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

Before the error happened, I was…
Doing anki cards then was attempting to sync.

Error message (don't change this)
Anki 23.12.1 (1a1d4d54)  (ao)
Python 3.9.15 Qt 6.5.3 PyQt 6.5.3
Platform: macOS-15.0.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x1506cc430 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 532, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/micahjsa/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

Before the error happened, I was…
Trying to sync my anki.

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-14.5-x86_64-i386-64bit

Traceback (most recent call last):

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x1355a5cd0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/bradallen/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

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

Error message (don't change this)
Anki 23.12.1 (1a1d4d54)  (ao)
Python 3.9.15 Qt 6.5.3 PyQt 6.5.3
Platform: macOS-15.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x16824caf0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 532, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/mevill02/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

**Before the error happened, I was trying to sync from my phone to my laptop. Loading wheel popped up and error message appeared.
[Replace this text.]

Error message (don't change this)
Anki 2.1.61 (0c1eaf4c) Python 3.9.15 Qt 6.3.2 PyQt 6.3.1
Platform: macOS-12.3.1-x86_64-i386-64bit
Flags: frz=True ao=True sv=3
Add-ons, last update check: 2024-11-19 21:13:44

Traceback (most recent call last):

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x11b9e9c10 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 701, in send

  File "requests.adapters", line 578, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 122, in _on_closures_pending

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/willwelch/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

Before the error happened, I was…
Trying to sync anki

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-14.6.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x17fc88850 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 119, in _on_sync_done
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "concurrent.futures.thread", line 58, in run

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 111, in <lambda>
    task=lambda: ah_deck_updater.update_decks_and_media(to_sync_ah_dids),

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 84, in _update_decks
    should_continue = self._update_single_deck(ah_did)

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 96, in _update_single_deck
    self._update_deck_config(ankihub_did)

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 112, in _update_deck_config
    deck = self._client.get_deck_by_id(ankihub_did)

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 894, in get_deck_by_id
    response = self._send_request(

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/abigailberk/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

Before the error happened, I was finishing a deck of anki cards and closed the app. As it was trying to sync, this error occurred.

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: Windows-10-10.0.22631

Traceback (most recent call last):

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x1bcd3fbefa0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\gui\auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "C:\Users\elane2\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

1 Like

**Before the error happened, I was simply closing out of my anki app on my mac and there was a rainbow cursor that appeared and anki crashes while syncing.

Error message (don't change this)
Anki 23.12.1 (1a1d4d54)  (ao)
Python 3.9.15 Qt 6.5.3 PyQt 6.5.3
Platform: macOS-14.2.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x1302d44f0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 532, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/thomascameroniii/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

**Before the error happened, I added some new add ons and tried to sync before restarting. however, was unable to successfully sync. I proceeded to delete the new addons i installed but issue is still not resolved. now unable to sync. unsure if it ankihub related and how to solve.
[Replace this text.]

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-14.5-arm64-arm-64bit

Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/ezwang01/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/ezwang01/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/ezwang01/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/ezwang01/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 615, in get_deck_subscriptions
    raise AnkiHubHTTPError(response)

1322529746.ankihub_client.ankihub_client.AnkiHubHTTPError: AnkiHub request error: 500 Internal Server Error

Sentry link (for developers)

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

Error message (don't change this)
Anki 23.12.1 (1a1d4d54)  (ao)
Python 3.9.15 Qt 6.5.3 PyQt 6.5.3
Platform: macOS-13.4-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x16b028730 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 532, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 119, in _on_sync_done
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "concurrent.futures.thread", line 58, in run

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 111, in <lambda>
    task=lambda: ah_deck_updater.update_decks_and_media(to_sync_ah_dids),

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 84, in _update_decks
    should_continue = self._update_single_deck(ah_did)

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 96, in _update_single_deck
    self._update_deck_config(ankihub_did)

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 112, in _update_deck_config
    deck = self._client.get_deck_by_id(ankihub_did)

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 894, in get_deck_by_id
    response = self._send_request(

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/fadiasworld/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

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

Error message (don't change this)
Anki 23.12.1 (1a1d4d54)  (ao)
Python 3.9.15 Qt 6.5.3 PyQt 6.5.3
Platform: macOS-14.6.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x326f5cf70 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 532, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/rosellabaddan/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

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

Error message (don't change this)
Anki 23.12.1 (1a1d4d54)  (ao)
Python 3.9.15 Qt 6.5.3 PyQt 6.5.3
Platform: macOS-13.5-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x133a19c70 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 532, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/arjunkumar/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

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

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.0.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x3ad837520 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/santichavez/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)

**Before the error happened, I was just trying to sync my cards

Error message (don't change this)
Anki 24.06.3 (d678e393)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.0.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

tenacity.RetryError: RetryError[<Future at 0x12941af40 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 264, in _send_request_with_retry
    response = last_attempt.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 277, in _send_request_with_retry_inner
    return self.thread_local_session.get().send(

  File "requests.sessions", line 703, in send

  File "requests.adapters", line 635, in send

requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)


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


Traceback (most recent call last):

  File "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/gui/auto_sync.py", line 99, in sync_with_ankiweb
    future.result()

  File "concurrent.futures._base", line 439, in result

  File "concurrent.futures._base", line 391, in __get_result

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 76, in _sync_with_ankihub_inner
    subscribed_decks = client.get_deck_subscriptions()

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 613, in get_deck_subscriptions
    response = self._send_request("GET", API.ANKIHUB, "/decks/subscriptions/")

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/shanepersaud/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 266, in _send_request_with_retry
    raise AnkiHubRequestException(e) from e

1322529746.ankihub_client.ankihub_client.AnkiHubRequestException: AnkiHub request exception: HTTPSConnectionPool(host='app.ankihub.net', port=443): Read timed out. (read timeout=20)

Sentry link (for developers)