open-spaced-repetition / fsrs4anki-helper

An Anki add-on that supports Postpone & Advance & Load Balance & Easy Days & Disperse Siblings & Flatten
https://ankiweb.net/shared/info/759844606
MIT License
198 stars 14 forks source link

[BUG] disperse_siblings on Anki open fails sometimes. #412

Closed szalejot closed 4 months ago

szalejot commented 4 months ago

Describe the bug disperse_siblings on Anki open fails sometimes.

To Reproduce Steps to reproduce the behavior:

  1. Open Anki
  2. See error

Expected behavior No error

Screenshots If applicable, add screenshots to help explain your problem.

Environment

Additional context Debug Info:

Anki 24.04 (429bc9e1) (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 "aqt.taskman", line 142, in _on_closures_pending File "aqt.taskman", line 86, in File "aqt.taskman", line 106, in wrapped_done File "aqt.sync", line 124, in on_future_done File "aqt.main", line 1057, in on_collection_sync_finished File "_aqt.hooks", line 5038, in call File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\sync_hook.py", line 97, in sync_did_finish.append(lambda: auto_disperse(local_rids, texts)) File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\sync_hook.py", line 88, in auto_disperse return fut.result() File "concurrent.futures._base", line 446, in result File "concurrent.futures._base", line 391, in __get_result File "concurrent.futures.thread", line 58, in run File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\schedule\disperse_siblings.py", line 158, in lambda: disperse_siblings_backgroud( File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\schedule\disperse_siblings.py", line 189, in disperse_siblings_backgroud mw.col.update_card(card) File "anki.collection", line 487, in update_card File "anki.collection", line 482, in update_cards File "anki.collection", line 482, in File "anki.cards", line 106, in _to_backend_card ValueError: Value out of range: -8

Traceback (most recent call last): File "aqt.taskman", line 142, in _on_closures_pending File "aqt.taskman", line 86, in File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\schedule\disperse_siblings.py", line 154, in on_done tooltip(f"{future.result()} in {time.time() - start_time:.2f} seconds") File "concurrent.futures._base", line 439, in result File "concurrent.futures._base", line 391, in get_result File "aqt.taskman", line 142, in _on_closures_pending File "aqt.taskman", line 86, in File "aqt.taskman", line 106, in wrapped_done File "aqt.sync", line 124, in on_future_done File "aqt.main", line 1057, in on_collection_sync_finished File "_aqt.hooks", line 5038, in call File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\sync_hook.py", line 97, in sync_did_finish.append(lambda: auto_disperse(local_rids, texts)) File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\sync_hook.py", line 88, in auto_disperse return fut.result() File "concurrent.futures._base", line 446, in result File "concurrent.futures._base", line 391, in get_result File "concurrent.futures.thread", line 58, in run File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\schedule\disperse_siblings.py", line 158, in lambda: disperse_siblings_backgroud( File "C:\Users\michal\AppData\Roaming\Anki2\addons21\759844606\schedule\disperse_siblings.py", line 189, in disperse_siblings_backgroud mw.col.update_card(card) File "anki.collection", line 487, in update_card File "anki.collection", line 482, in update_cards File "anki.collection", line 482, in File "anki.cards", line 106, in _to_backend_card ValueError: Value out of range: -8

===Add-ons (active)=== (add-on provided name [Add-on folder, installed at, version, is config changed]) AnkiMorphs ['472573498', 2024-04-16T15:05, 'None', mod] FSRS4Anki Helper ['759844606', 2024-05-10T16:01, 'None', mod] Language Tools - Learn Foreign Languages with Anki ['771677663', 2024-04-16T00:18, 'None', mod] Remove Duplicate Cards ['95590040', 2021-05-05T20:12, 'None', '']

===IDs of active AnkiWeb add-ons=== 472573498 759844606 771677663 95590040

===Add-ons (inactive)=== (add-on provided name [Add-on folder, installed at, version, is config changed]) CrowdAnki JSON exportimport Edit history Collaborate on deck creation ['1788670778', 2023-10-30T19:57, 'None', ''] Custom Background Image and Gear Icon ['1210908941', 2023-04-19T03:19, 'None', mod] Enhance main window ['877182321', 2023-10-22T22:28, 'None', mod] Improved Quizlet to Anki 21 Importer ['538351043', 2020-11-15T03:16, 'None', ''] Rebuild All Empty All for Anki 21 ['1810938259', 2018-07-20T06:40, 'None', ''] Stats Plus ['1009670238', 2021-03-04T13:23, 'None', '']

L-M-Sherlock commented 4 months ago

Could you share your collection with me to reproduce this error?

By the way, does it also happen when you disperse all siblings manually?

szalejot commented 4 months ago

Here is the collection without media: https://drive.google.com/file/d/1KNX9rG0OeqpoEAe1HjLqFF3qKZgMlBBq/view?usp=sharing

When I try to disperse all siblings manually I get this error. I tried 3 times and it failed every time.

L-M-Sherlock commented 4 months ago

I find out the problem: some cards' due date is earlier than the last review date. Do you know why?

image
L-M-Sherlock commented 4 months ago

I recommend rescheduling all your cards. It will fix the problem.

szalejot commented 4 months ago

That's strange, but I have no idea. I haven't modified Anki database directly. The only add-on that modifies due dates I have is FSRS Helper. At some point I have exported this deck, deleted it from Anki and then imported again after a few days. But it shouldn't matter.

szalejot commented 4 months ago

Seems like rescheduling all your cards fixed the issue. Thank you for your support.