I use a Mac and a Windows, and both have Anki installed and I sync between them. I haven’t used Windows for a while, but I’ve been syncing between Mac and Android. Today I opened Anki on my Windows and it had a conflict, which I chose to resolve by downloading the data from AnkiWeb. It did download the data (I can see my review graph is complete), but I had already done all my due reviews for today and now I got 111 new ones, which are cards I have already studied the past few days. For example, I have a card that is now due yesterday, but I have already studied it yesterday. I’m guessing SRS might have messed that up, but when I chose to get my data from AnkiWeb it should have ignored the local data.
When I opened my mac Anki app to try and get a backup it immediately synced with AnkiWeb and now it also has bad data. Please, help me recover my data.
I got saved by Anki’s automatic backup (I can’t include links, but it is in Anki Manual > Backups > Automatic backups). Leaving it here in case it happens to someone else.
Anyway, this shouldn’t have happened if I asked to use AnkiWeb data instead of my local outdated data. It should have respected that. I’ll start creating a manual backup every time I finish studying from now on just in case.
I’m glad you recovered your data, but I don’t think the one-way sync was the problem.
You’re welcome to maintain your own backups if you like, but I suspect this is due to a different kind of sync conflict, and having another set of backups won’t help. What you downloaded to your Windows device in that one-way sync was an exact copy of what was on AnkiWeb, so it couldn’t have happened then.
This kind of sync conflict is caused by changes to your collection on multiple devices on the same time. It can usually be traced back to inconsistent syncing, among the devices you’re actively using, or add-ons that perform actions automatically. See the link for more details.
The Card Info for a card in that situation would show for sure.
This keeps happening. Could it be FSRS changing the due dates differently across the two devices? Yesterday, I studied only on my phone. Today, I started by opening Anki on my Mac and syncing, then studied all the due cards on my phone and synced. Later this afternoon, I opened Anki on Windows, and after syncing, there were new cards due. Here is the card info for the same card on Windows and Mac for comparison.
It could be, but not from just regular studying. If you use devices with different versions of FSRS, each device schedules the cards you study on that device based on its own version of the algorithm on that device. But syncing wouldn’t change that, because each card would arrive with its scheduling intact.
Are you using a substantially older version of Anki on one of your devices where you study cards? I can see you’re using a 26.x version on windows, and a 25.x version on Android. What about your Mac?
How long has it been since you re-optimized your parameters for this “Default” preset?
From this Card Info, I can’t quite confirm whether it’s the sort of sync conflict I was talking about, because the review log is cut off in the screenshots. But check this one again, and if it has 17 entries (the same as the counter reads at the top), I think you’re okay on that front.
This looks like the card was rescheduled.
Mac – the card is due on the 28th (tomorrow).
Windows – the card is due on the 27th (today), and it has a shorter interval than the interval set by the last review on the 25th.
Do you have an active add-on in your Windows install that reschedules cards after syncing? For instance, some features of the FSRS Helper would do that, if you have them enabled.
There is a certain amount of randomness in a reschedule – fuzz, load balancing, etc. – so I wouldn’t expect reschedules done on 2 different devices at separate times to necessarily produce the exact same result.
I re-optimize it every 2-3 weeks. But I only ever do it on Mac. Are these values synced between devices? Should I re-optimize on both devices?
Yes, both have the same entries.
I think this is it. I just noticed I have FSRS with auto_reschedule_after_sync enabled. I was a bit confused because, after opening Anki, it would reschedule and then sync, so it seemed like the auto-reschedule happened before the sync, not after. Also, I was under the impression that since the auto-reschedule had already run on the Mac, it wouldn’t run again when opening Anki on Windows. But I’m going to disable that on Windows and keep it enabled on Mac to avoid this kind of conflict.
They sync fine. In fact, ideally you should choose one device and consistently use that for your optimization. The reason I asked was that if you had recently updated a device from an older version to a current version, but hadn’t yet re-optimized, that could be a reason for different scheduling. But now we know that’s not the issue.
Yep, that would do it. But each of your devices handles FSRS scheduling on its own, so you no longer have a need for that feature at all. You should disable it everywhere.