Travelling to another timezone and syncing Joplin there was not satisfactory

Operating system

Windows

Joplin version

3.3.13

Desktop version info

Joplin 3.3.13 (prod, win32)

Device: win32, Intel(R) Core(TM) i5-7600 CPU @ 3.50GHz
Client ID: 9fa44f8760bd487fb9c1809f4b0492f1
Sync Version: 3
Profile Version: 47
Keychain Supported: Yes
Alternative instance ID: -

Revision: 144ed59

Admonition markdown extension: 1.1.0
Backup: 1.4.3
Draw.io: 2.2.0
Freehand Drawing: 3.0.1
Outline: 1.5.14
Rich Markdown: 0.16.0
Table Formatter Plugin: 1.2.1
Templates: 2.4.0

Sync target

Dropbox

What issue do you have?

I travelled from Germany to China and synced a new device there on an iPhone (using an official eSIM to get through the great firewall). It took ages and was quite the pain as I always needed to touch the screen and couldn't use the phone so the sync doesn't halt (see e.g. Synchronisation on Android is supposed to happen every 5 minutes but does not Ā· Issue #11081 Ā· laurent22/joplin Ā· GitHub).

What surprised me most though was that when returning to my desktop version in Germany all notes seem to be have touched and needed to be resynced.

Perhaps I'm doing it all wrong. Would it help to move to Joplin Cloud? Thank you for the support.

Screenshots


Joplin relies on timestamps when syncing, so this sounds somewhat right. You could test the same yourself, e.g. by changing the OS time manually to a different zone.

Edit:

The above is likely incorrect. See below for explanation.

1 Like

from what I can find, Joplin should use UTC time which in theory shouldn't be impacted by time zone: Infinite note conflicts if client and server time is different Ā· Issue #5738 Ā· laurent22/joplin Ā· GitHub

1 Like

@3ter I see from the screen shot you are using E2E encryption. When you set up the new Joplin, did you set the master password before setting up sync, or did you just set up sync and only enter the password when prompted? I have known entering the master password beforehand on new client setup to cause issues

1 Like

I’m pretty positive I set up sync and then the encryption password. I remember opening up End-To-End Encryption (E2EE) | Joplin to make sure I do it correctly.

@3ter Thank you for clarifying.

There’s not much here to go on, but again looking at your screenshots I can see that there are very few updates and deletions, but the vast majority are fetch, and there a quite a lot of creates too, though much less than the fetches - I’ll just ignore the creates for now as I’m not sure what they are (I’m guessing somehow new note revisions as a consequence of the many fetches, but that’s just a guess).

Regarding the fetches, Joplin will increment the fetched items count for the number of items checked as part of the delta step of the sync. The delta step uses a context object to basically keep track of the changes that have already been synced up to this point. This context object is stored in the sqlite database and is updated after each successful sync. It basically stores a (epoch) timestamp, which will determine that any files which are modified earlier than this timestamp have already been synced, so don’t bother checking then again. I’m guessing that the context object on your desktop client may have somehow got reset, so that the delta step has to then rescan all files on the server. Not sure what would cause that to happen though.

Would you mind sharing a log file from your desktop client?

1 Like

Thanks for looking into it. Here’s the log file (hoping that there’s nothing in it that shouldn’t be shared :see_no_evil_monkey: ):

log.txt (3.6 MB)

Ok, looking at the logs it seems that all your notes have been deleted and recreated, but it happened over the course of a couple of days (27th-29th July), so all the fetches in the sync status were a followup sync action as a result of deletion and recreations in a previous sync cycle.

Just to be clear, when you synced the new device, you did not do any kind of jex import did you?

Assuming you did not, I think the issue is related to encryption keys as per my initial response. I can see from the logs that you did set up encryption correctly on this occasion (when you set up a new device on holiday), but it seems that at some point in the past you may have made an error when you set up the encryption. I can tell this from entries like this, which are seen throughout the logs:

2025-07-29 05:42:00: e2ee/utils: Loaded master keys: 3

For my own profile, the log reports Loaded master keys: 1 in the log entries.

In Joplin desktop, please go to tools, options, encryption and post a screenshot of your encryption keys section:

1 Like

I think it shows 3 because I made an error once and needed to disable 2. I don’t remember the circumstances anymore.

Right ok. As the other keys are disabled and haven’t been updated for years according to the screenshot, they should not cause any problems.

I had another look at the logs and looks there were thousands of fetches that happened before the many delete a create entries, as well as after them. I cross referenced some of the object ids from the deleted entries though, picking some random ones at the lower and upper fetch entries, and they were all revision objects (note history).

It seems like something weird has happened with the revision maintenance. For some reason, when you set up the new client, it created many new revisions which were then uploaded to the server. Then when you came back, the desktop client considers those revisions to be expired, so deletes them locally and on the server. You can see this by following the journey of one of the revision ids like so:

2025-07-29 05:52:11: Synchronizer: Sync: createLocal: remote exists but local does not: (Remote b75c13eac24e43e6bfef9823217c9d01.md)
2025-07-29 06:02:10: DeleteAction: Revision.deleteOldRevisions: ; Item IDs: ["b75c13eac24e43e6bfef9823217c9d01","fc3c6d349ceb4639ae1aae32e087595b","b11aa997aaa74b2ca8ad15ab51ac9ca8","37319e123de84aa1aa0dd521a67394db","18f273adae4741faa09c43c3d14ef17d"]
2025-07-29 06:35:12: Synchronizer: Sync: deleteRemote: local has been deleted: (Remote b75c13eac24e43e6bfef9823217c9d01)

1 Like

Could you please share a couple more things? On Joplin desktop go to the help, synchronization status screen and send over a screenshot of the totals shown there.

Also, can you please let me know what value is set for ā€˜note history keep for’ setting, for both your desktop and mobile clients?

1 Like

And on mobile it’s set to 90 days as well.

In your log file there are 1360 occurances of Revision.deleteOldRevisions, 12 of which were in June and the rest from 27th July onwards. That’s just a bit more than the total number of notes you have, and now you only have 387 revisions which is not much in comparison.

It’s quite baffling to be honest. The only other possible thing that might help is if you could send over the log from your iphone as well to determine if the revisions which were downloaded from the server were created on the iphone or if they already existed. Also is the iphone app on the latest version?

1 Like

Unfortunately I already removed the app from my iPhone because I was a little frustrated :see_no_evil_monkey: . I take it as baffling then.

PS Other apps I adore also handle this time shift pretty ā€œbafflingā€: tasks.org also touches everything and to make it worse it also shifts so the times are off at the new location…
Reddit - The heart of the internet. To quote the valued (I’m a sponsor) developer:

Yeah, this is a long-standing issue. Tasks doesn't have a concept of time zones so everything is stored as local time relative to where it was created. I would like to fix this I just don't know when that'll happen

Yeah that’s fair enough. I’m not convinced that the time shift was the cause of this, as timestamps do look the be handled consistently (and timezone agnostic) throughout the application when looking through the code relating to sync. I think the issue more likely arose due to something to do with a new device being setup. But I can’t tell you what caused it either.

All I can say is it may have been a one off due to your profile being in a dodgey state somehow, but I can see from your sync status that everything is all good now and note history cleaning is up to date now if there was some sort of cleaning issue. So this may not happen again, but nonetheless if you want to avoid the possibility that it does, then it would be best to do a new device setup before going away.

1 Like