I opened a note on Joplin app version 1.7.11 on Windows 10, and I edited it. Then I switched to another program. When I came back to Joplin, the note was gone. I discovered it in the "Conflicts" notebook. There is only one version of the note, not two. So there is nothing to compare against.
The FAQ states "A conflict happens when one note or one attachment is modified in two different places, and then synchronised", but this did not happen. I only opened the note on one device.
I am syncing to dropbox. I also had the Android app (v1.7.5) open at the same time (but not editing the same note). Also the android app frequently shows "error: cannot acquire exclusive lock", whenever the desktop app is running at the same time.
I am very accustomed to data conflicts in software, but something is not right here. The conflicts system is not acting as I would expect.
Is this a bug that Joplin has determined that my note is in "conflict" with nothing? Is the note supposed to be moved or copied to the Conflicts notebook?
UPDATE: I've synced the mobile client and now there are TEN (10) notes in Conflicts where it only had one before. What is going on?
Hmm, Dropbox sync is reliable normally. Unfortunately it's difficult to know what might have happened but you mentioned connection issues so that might be related - i.e. you thought you were working on the latest version of a note but in fact it wasn't as it hadn't been successfully synced.
I had previously been using Evernote for 10 years. I came to Joplin after Evernote essentially started holding my data to ransom - they insisted on payment before I could access it on the devices I needed.
I love that markdown is so central to Joplin. I like the flexibility of syncing. I can live with the lack of a readymade web interface. But these problems with syncing are a show stopper.
I'm willing to go through and figure it out step-by-step.
First question: When a conflict is detected, is the note supposed to move into the Conflicts notebook? Because that's what is happening. I expected the note to be copied, as the FAQ explains:
What happens in case of a conflict?
When Joplin detects a conflict, the local note is copied to the Conflict notebook so as to avoid any data loss. Then the remote note is downloaded. You can then inspect the notes in the Conflict notebook, compare it with your other version, and copy any change that might have been overwritten.
Which one is correct, the FAQ or the observed behaviour?
UPDATE: The problem is even more urgent and critical now.
I was going through some old notes via the Windows Desktop client, renaming them. I had definitely NOT opened them in any other Joplin client, ever. As I was reading one note, it disappeared in front of my eyes, moving itself to the Conflicts folder along with all the other notes I had just renamed.
What is going on?! The conflict detection system is clearly malfunctioning and has gone beserk.
I have the official dropbox client syncing all the Joplin files to this same machine along with my regular dropbox files. Could that be causing the conflicts somehow?
It shouldn't. I had the exact same set up (except I was on Win 8) and never had any issues that I could attribute to the official Dropbox client. Haven't been using Android app much since the lockdown though.
At this point I think your best bet is to export your notes and reinstall and see if this issue reoccurs.
I can try to reproduce this later but these kinds of issues tend to be very finicky.
I disabled the Android app sync schedule. Closed the app, and "paused" it, for good measure. I assume the Android app logs are not useful at this point.
The problem still exists in Desktop app: Edit a note, press sync, it is copied to Conflicts.
I'm attaching the debug console output from the desktop app, as I am reproducing the bug, if that helps at all.
For some reason, when you edit, Joplin decides the note in Dropbox has update time higher than the last sync time and assumes it's been changed by another client.
I'd like to get to the bottom of this but don't have time atm. I'll see if I can reproduce it myself first and get back to you.
Find its id (either in its properties or can right click on it and copy markdown link)
Find it in Dropbox under Apps/Joplin, the file will be named <note id>.md and copy updated_time
Open your Joplin database which should be in your user profile dir in .config/joplin-desktop/database.sqlite and run these queries:
select updated_time from notes where id = '...'
select * from sync_items where item_id = '..'
Save the results
5. Now edit that note and sync, make note of the time you edited it
6. Assuming the note gets moved to Conflicts repeat steps 3 & 4 and share the results