While I was reviewing a deck in Anki 25.05.1 Beta 1 for macOS, I pressed I to open the card info window. The window appeared, but it was completely blank except for the Close button at the bottom. When I closed the window and tried to exit the study session (by pressing S), Anki crashed with the following stack trace:
Anki 25.05 (0aaa6383)
Python 3.9.18 Qt 6.6.2 PyQt 6.6.1
Platform: macOS-15.4.1-arm64-arm-64bit
Traceback (most recent call last):
File "aqt.taskman", line 148, in _on_closures_pending
File "aqt.taskman", line 88, in <lambda>
File "aqt.sync", line 52, in on_future_done
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 "aqt.sync", line 62, in <lambda>
File "anki.collection", line 1153, in sync_status
File "anki._backend_generated", line 94, in sync_status
File "anki._backend", line 161, in _run_command
pyo3_runtime.PanicException: called `Result::unwrap()` on an `Err` value: PoisonError { .. }
After re-launching Anki, I was able to reproduce the crash by repeating the steps above while reviewing the same card. However, doing the same steps on other cards did not produce any buggy behavior.
Ok Iâve found the bug (the parameters arenât upgraded to FSRS6 in the retrievability priority functions) but the fix remains the same. Thanks for helping clear that up.
Additional info: When I run Anki in the terminal with RUST_BACKTRACE=1, it prints the following panic when opening the Info window:
thread '<unnamed>' panicked at rslib/src/stats/card.rs:161:39:
index out of bounds: the len is 0 but the index is 18446744073709551615
stack backtrace:
0: _rust_begin_unwind
1: core::panicking::panic_fmt
2: core::panicking::panic_bounds_check
3: anki::stats::card::<impl anki::collection::Collection>::stats_revlog_entries_with_memory_state
4: anki::stats::service::<impl anki::services::StatsService for anki::collection::Collection>::card_stats
5: anki::services::<impl anki::backend::Backend>::run_service_method
6: rsbridge::Backend::__pymethod_command__
7: pyo3::impl_::trampoline::trampoline
8: rsbridge::<impl pyo3::impl_::pyclass::PyMethods<rsbridge::Backend> for pyo3::impl_::pyclass::PyClassImplCollector<rsbridge::Backend>>::py_methods::ITEMS::trampoline
9: _method_vectorcall_VARARGS_KEYWORDS
10: __PyEval_EvalFrameDefault
Yes, it could be related. The card that triggered the crash has exactly one review later than ignore_reviews_before. Other cards I tried (with more recent reviews) do not trigger the same behavior. I donât have a local build of Anki set up to test with that fix, but I may try it later if I have time, or I can provide a .colpkg if someone else wants to try confirming it.
Edit: Looking at the code for stats_revlog_entries_with_memory_state, Iâm pretty sure this should be fixed by that patch.
After upgrading to the latest version, I experienced frequent crashes in the browse window when trying to multi-select items using the Shift key. Despite repeatedly restarting Anki, the issue persisted. However, the problem mysteriously resolved itself at some point, and I can no longer reproduce the bug. Iâm sharing this information for reference. Thanks.
My change was related to the font size of the mathjax popup, which should not have an effect on the fields and how mathjax is rendered. I can take a look though.
@Lama06 Can you send me the mathjax as text please (from the html field)? Please paste it into a code block like this: â`some code goes here`â, so that you get the code in a gray box like this: some code goes here.
The context menu entry should display âGrade Now âŠâ (with ellipsis). Ellipsis (three dots) are typically added programmatically to strings requiring additional user input before action execution. Other context menu options around âGrade Nowâ include ellipsis, so this should align for consistency.
Grade Now should work correctly for non-suspended cards without triggering an error message, even if the card had been rescheduled manually.
Anyway, the error message âCanât answer suspended cardsâ is misleading in this context if the actual problem is that the card had been rescheduled.
If the error message âCanât answer suspended cardsâ is actually used, it should be available for localization in Pontoon.
The existence of the error string âCanât answer suspended cardsâ is strange, given that applying this feature to suspended cards generally works.
Itâs weird that you see the error message when your card is not suspended.
I cannot reproduce this bug on a card manually rescheduled by Set Due Date. Could you provide more details about the affected card? Such as the card info.