Sync Bug Sync 01/07

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-13.6.7-arm64-arm-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

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

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

  File "/Users/carolinesawrey/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 to ankihub and it says

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-arm64-arm-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

  File "/Users/claudiawhittlesey/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 opening the anki app. Below is the error details
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\johnp\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\johnp\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity_init_.py”, line 289, in wrapped_f
return self(f, *args, **kw)

File “C:\Users\johnp\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity_init_.py”, line 379, in call
do = self.iter(retry_state=retry_state)

File “C:\Users\johnp\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity_init_.py”, line 326, in iter
raise retry_exc from fut.exception()

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

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File “C:\Users\johnp\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\johnp\AppData\Roaming\Anki2\addons21\1322529746\lib\tenacity_init_.py”, line 382, in call
result = fn(*args, **kwargs)

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

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

File “C:\Users\johnp\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)

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

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

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

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

  File "C:\Users\sevan\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\sevan\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 96, in _update_single_deck
    self._update_deck_config(ankihub_did)

  File "C:\Users\sevan\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 112, in _update_deck_config
    deck = self._client.get_deck_by_id(ankihub_did)

  File "C:\Users\sevan\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 894, in get_deck_by_id
    response = self._send_request(

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

  File "C:\Users\sevan\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 imported a new deck and pressed sync.
Anki 24.11 (87ccd24e) (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/lilyliu/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/lilyliu/Library/Application Support/Anki2/addons21/1322529746/lib/tenacity/init.py”, line 289, in wrapped_f
return self(f, *args, **kw)

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

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

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

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

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

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

File “/Users/lilyliu/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/lilyliu/Library/Application Support/Anki2/addons21/1322529746/gui/deck_updater.py”, line 96, in _update_single_deck
self._update_deck_config(ankihub_did)

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

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

File “/Users/lilyliu/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-arm64-arm-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

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

  File "/Users/lilyliu/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 simply tapping on the AnKing 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-14.6.1-arm64-arm-64bit

Traceback (most recent call last):

  File "aqt.webview", line 53, in cmd

  File "aqt.webview", line 169, in _onCmd

  File "aqt.webview", line 725, in _onBridgeCmd

  File "aqt.overview", line 98, in _linkHandler

  File "aqt.main", line 770, in moveToState

  File "aqt.main", line 791, in _reviewState

  File "aqt.reviewer", line 183, in show

  File "aqt.reviewer", line 203, in refresh_if_needed

  File "/Users/username/Library/Application Support/Anki2/addons21/864545277/review_controller.py", line 64, in wrapped
    originalResult = originalFunction(self)

  File "aqt.reviewer", line 259, in nextCard

  File "decorator", line 232, in fun

  File "anki.hooks", line 92, in decorator_wrapper

  File "anki.hooks", line 83, in repl

  File "aqt.reviewer", line 343, in _initWeb

  File "aqt.webview", line 568, in stdHtml

  File "_aqt.hooks", line 5481, in __call__

  File "/Users/username/Library/Application Support/Anki2/addons21/1322529746/gui/reviewer.py", line 385, in _inject_ankihub_features_and_setup_sidebar
    }}

  File "/Users/username/Library/Application Support/Anki2/addons21/1322529746/gui/web/templates.py", line 33, in get_ankihub_ai_js

  File "jinja2.environment", line 1013, in get_template

  File "jinja2.environment", line 972, in _load_template

  File "jinja2.loaders", line 126, in load

  File "jinja2.loaders", line 207, in get_source

jinja2.exceptions.TemplateNotFound: ankihub_ai.js

Sentry link (for developers)

**Before the error happened, I was trying to sync.

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-arm64-arm-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

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

  File "/Users/carolinesawrey/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 syncing fine, and now it’s not:(

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

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

  File "C:\Users\narwh\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\narwh\AppData\Roaming\Anki2\addons21\1322529746\gui\menu.py", line 335, in on_done
    """Set up the menu item for uploading suggestions in bulk."""

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

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

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

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

  File "C:\Users\narwh\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\narwh\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 96, in _update_single_deck
    self._update_deck_config(ankihub_did)

  File "C:\Users\narwh\AppData\Roaming\Anki2\addons21\1322529746\gui\deck_updater.py", line 112, in _update_deck_config
    deck = self._client.get_deck_by_id(ankihub_did)

  File "C:\Users\narwh\AppData\Roaming\Anki2\addons21\1322529746\ankihub_client\ankihub_client.py", line 894, in get_deck_by_id
    response = self._send_request(

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

  File "C:\Users\narwh\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 studying normally. This has been ongoing since 2PM CST ish. I pressed “Download” in response to the sync conflict, and how I have 5x more reviews that appeared, and this is just 3 days after upgrading to premium…

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.3-arm64-arm-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

  File "/Users/user/Library/Application Support/Anki2/addons21/1322529746/gui/browser/browser.py", line 446, 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/user/Library/Application Support/Anki2/addons21/1322529746/gui/browser/browser.py", line 452, in <lambda>
    lambda: reset_local_changes_to_notes(nids, ah_did=ah_did),

  File "/Users/user/Library/Application Support/Anki2/addons21/1322529746/main/reset_local_changes.py", line 25, in reset_local_changes_to_notes
    protected_fields = client.get_protected_fields(ah_did=ah_did)

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

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

  File "/Users/user/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 syncing anki

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

  File "/Users/gabrielvargas/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 syncing my cards before finishing my session.

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/walker/Library/Application Support/Anki2/addons21/1322529746/gui/menu.py", line 208, in login
    reviewer_sidebar.update_sidebar_content_with_chatbot_url()

  File "/Users/walker/Library/Application Support/Anki2/addons21/1322529746/gui/reviewer.py", line 298, in update_sidebar_content_with_chatbot_url
    ah_nid = ankihub_db.ankihub_nid_for_anki_nid(self.reviewer.card.nid)

AttributeError: 'NoneType' object has no attribute 'nid'

Sentry link (for developers)

I just tried to set up my anki remote and am running into problems. None of the cards I hit repeat on are showing up again and I received this large error message when I shut down Anki and restarted it. Does anyone know how to fix this?

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.5-arm64-arm-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

  File "/Users/juliamiddlesworth/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 will not accept my ankihub login, anybody know what is going on?

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.19045

Traceback (most recent call last):

  File "C:\Users\cwhit\AppData\Roaming\Anki2\addons21\1322529746\gui\menu.py", line 208, in login
    reviewer_sidebar.update_sidebar_content_with_chatbot_url()

  File "C:\Users\cwhit\AppData\Roaming\Anki2\addons21\1322529746\gui\reviewer.py", line 298, in update_sidebar_content_with_chatbot_url
    ah_nid = ankihub_db.ankihub_nid_for_anki_nid(self.reviewer.card.nid)

AttributeError: 'NoneType' object has no attribute 'nid'

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.0-x86_64-i386-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

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

  File "/Users/rafajmzz/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: 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 0x1f15488c670 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.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…
syncing my 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: 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 0x1dd8dd497f0 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 "C:\Users\micha\AppData\Roaming\Anki2\addons21\1322529746\gui\decks_dialog.py", line 694, in display_subscribe_window
    cls._window = cls()

  File "C:\Users\micha\AppData\Roaming\Anki2\addons21\1322529746\gui\decks_dialog.py", line 61, in __init__
    self._refresh_decks_list()

  File "C:\Users\micha\AppData\Roaming\Anki2\addons21\1322529746\gui\decks_dialog.py", line 579, in _refresh_decks_list
    subscribed_decks = self.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…
[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.2-arm64-arm-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

  File "/Users/anumzehra/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-15.1.1-x86_64-i386-64bit

Traceback (most recent call last):

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

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

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


During handling of the above exception, another exception occurred:


Traceback (most recent call last):

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

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

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

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

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

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