Sync Bug Sync 01/07

Before the error happened, I was…
Downloading the Step 1 and Step 2 Sketchy-Pepper deck

Error message (don't change this)
Anki 24.11 (87ccd24e)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.0-x86_64-i386-64bit

Traceback (most recent call last):

  File "/Users/Megan/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/Megan/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/Megan/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 0x14dddee20 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/Megan/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/Megan/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/Megan/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 "/Users/Megan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/deck_installation.py", line 168, in _download_and_install_decks_inner
    _download_and_install_single_deck(

  File "/Users/Megan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/deck_installation.py", line 204, in _download_and_install_single_deck
    result = _install_deck(

  File "/Users/Megan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/deck_installation.py", line 235, in _install_deck
    protected_fields = client.get_protected_fields(ah_did=ankihub_did)

  File "/Users/Megan/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 1052, in get_protected_fields
    response = self._send_request(

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

  File "/Users/Megan/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)


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/Megan/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/Megan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/Megan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py", line 97, in _on_new_deck_subscriptions_done
    future.result()

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

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

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

  File "/Users/Megan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/deck_installation.py", line 85, in _on_install_done
    import_results: List[AnkiHubImportResult] = 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/Megan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/deck_installation.py", line 71, in <lambda>
    task=lambda: _download_and_install_decks_inner(

  File "/Users/Megan/Library/Application Support/Anki2/addons21/1322529746/gui/operations/deck_installation.py", line 187, in _download_and_install_decks_inner
    raise exceptions[0]

1322529746.gui.exceptions.DeckDownloadAndInstallError: Error while downloading and installing deck c784aa1c-edc1-4393-bb86-01c4efaad3c3: 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 cards to ankihub and this occurred.

Error message (don't change this)
Anki 24.11 (87ccd24e)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: Windows-10-10.0.26100

Traceback (most recent call last):

  File "C:\Users\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Users\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "C:\Users\basho\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 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 "C:\Users\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\basho\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\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "C:\Users\basho\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\basho\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\basho\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\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 796, in _get_deck_updates_inner
    response = self._send_request(

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

  File "C:\Users\basho\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 23.10 (51a10f09) Python 3.9.15 Qt 6.5.3 PyQt 6.5.3
Platform: macOS-13.3-arm64-arm-64bit
Flags: frz=True ao=True sv=3
Add-ons, last update check: 2025-01-05 18:37:23

Traceback (most recent call last):

  File "/Users/joeyhibbard/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/joeyhibbard/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/joeyhibbard/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 0x159f691f0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/joeyhibbard/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/joeyhibbard/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/joeyhibbard/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 138, in _on_closures_pending

  File "/Users/joeyhibbard/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/joeyhibbard/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/joeyhibbard/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/joeyhibbard/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/joeyhibbard/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/joeyhibbard/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: Windows-10-10.0.22621

Traceback (most recent call last):

  File "C:\Users\arauj\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\arauj\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Users\arauj\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\arauj\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "C:\Users\arauj\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\arauj\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\arauj\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\arauj\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\arauj\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\arauj\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "C:\Users\arauj\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)

Anki 24.11 (87ccd24e) (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.1.1-x86_64-i386-64bit

Traceback (most recent call last):

File “/Users/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/init.py”, line 289, in wrapped_f
return self(f, *args, **kw)

File “/Users/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/init.py”, line 379, in call
do = self.iter(retry_state=retry_state)

File “/Users/ruthierichardson/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 0x178ff2c40 state=finished raised ReadTimeout>]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File “/Users/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/init.py”, line 382, in call
result = fn(*args, **kwargs)

File “/Users/ruthierichardson/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/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py”, line 39, in wrapper
return func(*args, **kwargs)

File “/Users/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/gui/operations/ankihub_sync.py”, line 111, in
task=lambda: ah_deck_updater.update_decks_and_media(to_sync_ah_dids),

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

File “/Users/ruthierichardson/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/ruthierichardson/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/ruthierichardson/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/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py”, line 796, in _get_deck_updates_inner
response = self._send_request(

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

File “/Users/ruthierichardson/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)

Error message (don't change this)
Anki 24.11 (87ccd24e)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.1.1-x86_64-i386-64bit

Traceback (most recent call last):

  File "/Users/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/ruthierichardson/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 0x178ff2c40 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/ruthierichardson/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/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/ruthierichardson/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/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "/Users/ruthierichardson/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/ruthierichardson/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/ruthierichardson/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/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 796, in _get_deck_updates_inner
    response = self._send_request(

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

  File "/Users/ruthierichardson/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)

(topic deleted by author)

Before the error happened, I was…

Syncing with AnkiWeb. I’m running anki off of a portable USB, and have used it on two different computers today.

I’ve suspended a vast majority of cards.

Error message (don't change this)
Anki 24.04.1 (ccd9ca1a)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: Windows-10-10.0.19045

Traceback (most recent call last):

  File "D:\Anki\ankidata\addons21\1322529746\ankihub_client\ankihub_client.py", line 256, in _send_request_with_retry
    response = self._send_request_with_retry_inner(

  File "D:\Anki\ankidata\addons21\1322529746\lib\tenacity\__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

  File "D:\Anki\ankidata\addons21\1322529746\lib\tenacity\__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)

  File "D:\Anki\ankidata\addons21\1322529746\lib\tenacity\__init__.py", line 326, in iter
    raise retry_exc from fut.exception()

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "D:\Anki\ankidata\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 "D:\Anki\ankidata\addons21\1322529746\lib\tenacity\__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "D:\Anki\ankidata\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 "D:\Anki\ankidata\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 "D:\Anki\ankidata\addons21\1322529746\gui\operations\utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "D:\Anki\ankidata\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 "D:\Anki\ankidata\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 "D:\Anki\ankidata\addons21\1322529746\gui\deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "D:\Anki\ankidata\addons21\1322529746\gui\deck_updater.py", line 84, in _update_decks
    should_continue = self._update_single_deck(ah_did)

  File "D:\Anki\ankidata\addons21\1322529746\gui\deck_updater.py", line 98, in _update_single_deck
    result = self._fetch_and_apply_deck_updates(ankihub_did)

  File "D:\Anki\ankidata\addons21\1322529746\gui\deck_updater.py", line 120, in _fetch_and_apply_deck_updates
    deck_updates = self._client.get_deck_updates(

  File "D:\Anki\ankidata\addons21\1322529746\ankihub_client\ankihub_client.py", line 736, in get_deck_updates
    for chunk in self._get_deck_updates_inner(

  File "D:\Anki\ankidata\addons21\1322529746\ankihub_client\ankihub_client.py", line 796, in _get_deck_updates_inner
    response = self._send_request(

  File "D:\Anki\ankidata\addons21\1322529746\ankihub_client\ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "D:\Anki\ankidata\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 studying and hit sync

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 "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/ethanangell/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/ethanangell/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

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

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

1322529746.ankihub_client.ankihub_client.AnkiHubHTTPError: AnkiHub request error: 406 Not Acceptable

Sentry link (for developers)

Before the error happened, I was… I don’t remember. Sorry.

It takes forever when trying to sync and it ends up giving an error and asks me if I want to report the error. I would like the previous version of the AnkiHub add-on please! This one just doesn’t work! It’s EVERY single time it syncs or tries to sync, it takes like 2 minutes and then ends up failing anyways. This includes when trying to close or open Anki. It’s gotten to annoying to deal with now, I just need the previous version so that this doesn’t happen anymore.

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 "aqt.taskman", line 142, in _on_closures_pending

  File "/Users/jesmondra/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/jesmondra/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/jesmondra/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/jesmondra/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: 502 Bad Gateway

Sentry link (for developers)

**Before the error happened, I was… opening the app and then trying to close the app

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

Traceback (most recent call last):

  File "/Users/leebrown/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/leebrown/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/leebrown/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 0x12cf42790 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/leebrown/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/leebrown/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/leebrown/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/leebrown/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/leebrown/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/leebrown/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/leebrown/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/leebrown/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/leebrown/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-12.2.1-arm64-arm-64bit

Traceback (most recent call last):

  File "/Users/luvaargas/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/luvaargas/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/luvaargas/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 0x146729070 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/luvaargas/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/luvaargas/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/luvaargas/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 "aqt.taskman", line 86, in <lambda>

  File "aqt.taskman", line 106, in wrapped_done

  File "/Users/luvaargas/Library/Application Support/Anki2/addons21/1322529746/gui/operations/db_check/anki_db_check.py", line 64, in _on_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/luvaargas/Library/Application Support/Anki2/addons21/1322529746/gui/operations/db_check/anki_db_check.py", line 57, in <lambda>
    lambda: _reset_decks(ah_dids_with_missing_ah_nids),

  File "/Users/luvaargas/Library/Application Support/Anki2/addons21/1322529746/gui/operations/db_check/anki_db_check.py", line 127, in _reset_decks
    reset_local_changes_to_notes(nids, ah_did=ah_did)

  File "/Users/luvaargas/Library/Application Support/Anki2/addons21/1322529746/main/reset_local_changes.py", line 26, in reset_local_changes_to_notes
    protected_tags = client.get_protected_tags(ah_did=ah_did)

  File "/Users/luvaargas/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 1070, in get_protected_tags
    response = self._send_request(

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

  File "/Users/luvaargas/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.11 (87ccd24e)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-14.6.1-x86_64-i386-64bit

Traceback (most recent call last):

  File "/Users/alexhongo/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/alexhongo/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/alexhongo/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 0x14eb6a4c0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/alexhongo/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/alexhongo/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/alexhongo/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/alexhongo/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/alexhongo/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/alexhongo/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/alexhongo/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/alexhongo/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "/Users/alexhongo/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/alexhongo/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/alexhongo/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/alexhongo/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/alexhongo/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 796, in _get_deck_updates_inner
    response = self._send_request(

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

  File "/Users/alexhongo/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 with ankihub.

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

Traceback (most recent call last):

  File "/Users/Swetha/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/Swetha/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/Swetha/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 0x1759674c0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/Swetha/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/Swetha/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/Swetha/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/Swetha/Library/Application Support/Anki2/addons21/1322529746/gui/menu.py", line 339, in on_done
    future.result()

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

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

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

  File "/Users/Swetha/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/Swetha/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/Swetha/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "/Users/Swetha/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/Swetha/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 107, in _update_single_deck
    self.fetch_and_apply_pending_notes_actions_for_deck(ankihub_did)

  File "/Users/Swetha/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py", line 159, in fetch_and_apply_pending_notes_actions_for_deck
    pending_notes_actions = self._client.get_pending_notes_actions_for_deck(

  File "/Users/Swetha/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 885, in get_pending_notes_actions_for_deck
    response = self._send_request(

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

  File "/Users/Swetha/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 cards to ankihub and this occurred.

Error message (don't change this)
Anki 24.11 (87ccd24e)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: Windows-10-10.0.26100

Traceback (most recent call last):

  File "C:\Users\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Users\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "C:\Users\basho\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 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 "C:\Users\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\basho\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\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "C:\Users\basho\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\basho\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\basho\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\basho\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\basho\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 796, in _get_deck_updates_inner
    response = self._send_request(

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

  File "C:\Users\basho\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…
[Subscribing/syncing to new decks.]

Error message (don't change this)
Anki 24.11 (87ccd24e)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.1.1-x86_64-i386-64bit

Traceback (most recent call last):

  File "/Users/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/ruthierichardson/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 0x146e367f0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/ruthierichardson/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/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/ruthierichardson/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/ruthierichardson/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/ruthierichardson/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/ruthierichardson/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)

Hello,

Sorry for the inconvenience, and thanks for your patience. There is currently a bit of a bug with the Ankihub servers, which is preventing some users from being able to sync appropriately.

I don’t have an immediate ETA at the moment, though the developers aware and currently working on a fix. :slight_smile:

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

Error message (don't change this)
Anki 24.11 (87ccd24e)  (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\micha\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\micha\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Users\micha\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\micha\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "C:\Users\micha\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 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 "C:\Users\micha\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\micha\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\micha\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\micha\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\micha\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "C:\Users\micha\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 syncing.

Error message (don't change this)
Anki 24.04 (429bc9e1)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: Windows-10-10.0.26100

Traceback (most recent call last):

  File "C:\Users\yonig\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\yonig\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "C:\Users\yonig\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\yonig\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity\__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "C:\Users\yonig\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 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 "C:\Users\yonig\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\yonig\AppData\Roaming\Anki2\addons21\1322529746\gui\operations\utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "C:\Users\yonig\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\yonig\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\yonig\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 61, in update_decks_and_media
    self._update_decks(ah_dids)

  File "C:\Users\yonig\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\yonig\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 102, in _update_single_deck
    result = self._fetch_and_apply_deck_extension_updates(ankihub_did)

  File "C:\Users\yonig\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 178, in _fetch_and_apply_deck_extension_updates
    deck_extensions := self._client.get_deck_extensions_by_deck_id(ankihub_did)

  File "C:\Users\yonig\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 1113, in get_deck_extensions_by_deck_id
    response = self._send_request(

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

  File "C:\Users\yonig\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 syncing AnkiHub due to AI being unavailable (I am a paid subscriber).

Error message (don't change this)
Anki 24.11 (87ccd24e)  (ao)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.2-x86_64-i386-64bit

Traceback (most recent call last):

  File "/Users/joehart/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/joehart/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/joehart/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 0x130770f70 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/joehart/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/joehart/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/joehart/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/joehart/Library/Application Support/Anki2/addons21/1322529746/gui/menu.py", line 339, in on_done
    future.result()

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

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

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

  File "/Users/joehart/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/joehart/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/joehart/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/joehart/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. I also had issues when I was trying to suggest optional tags a few hours ago.

Error message (don't change this)
Anki 24.11 (87ccd24e)  (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/reginametz/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/reginametz/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)

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

  File "/Users/reginametz/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 0x313f097f0 state=finished raised ReadTimeout>]


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

  File "/Users/reginametz/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/reginametz/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)

  File "/Users/reginametz/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/reginametz/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/reginametz/Library/Application Support/Anki2/addons21/1322529746/gui/operations/utils.py", line 39, in wrapper
    return func(*args, **kwargs)

  File "/Users/reginametz/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/reginametz/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/reginametz/Library/Application Support/Anki2/addons21/1322529746/ankihub_client/ankihub_client.py", line 238, in _send_request
    response = self._send_request_with_retry(

  File "/Users/reginametz/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)