Homepage    |    Wiki    |    GitHub    |    Twitter

Can't sync from android to desktop after fresh install

Joplin Desktop for Linux: 2.6.10
Joplin for Android: 2.6.8
OS: Pop_OS 21.10
Android 12
Sync provider: Nextcloud (Cloudamo)

I was having some sync issues between my android device and desktop so I decided to start fresh. Here is what I did:

  1. Exported all notes and notebooks to a jex file and also to a joplin export directory (just to be safe).
  2. Uninstalled Joplin on my desktop by removing the files in ~/.config/joplin-desktop, ~/.joplin, and ~/.local/share/applications/appimagekit-joplin.desktop.
  3. Removed the joplin sync folder in my nextcloud instance.
  4. Uninstalled Joplin on my android device.
  5. Used the following command to re-install joplin on my desktop: wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash
  6. Opened joplin on my desktop and imported the jex file.
  7. Set up the Nextcloud syncronization folder, configured the syncronization on my desktop, and syncronized.
  8. Followed the instructions to set up end to end encryption.
  9. Resynced from desktop. Waited until this completely finished.
  10. Downloaded the joplin android app through the Aurora store.
  11. Set up Nextcloud synchronization on the android app.
  12. Synced to the joplin android app.

After doing this, everything that was on my desktop joplin was also on my android joplin. I then wanted to see if there were any syncing issues going both directions (desktop to android and android to desktop). Here is what I did:

  1. Opened the desktop joplin app and made a change to a note.
  2. Syncronized from the desktop joplin app. I have about 740 notes and this took 154 seconds. I then closed the desktop joplin app.
  3. After about 15 minutes, I opened the android joplin app and synchronized. This syncronization took 21 seconds.

I first checked to see if there were any note conflicts and there weren't. I checked the note that had the change and the change had been successfully pushed. So at this point, it appears syncing from desktop to android works fine.

To test the synchronization in the other direction I did the following:

  1. Made an additional change to the same note from my android.
  2. Synchronized from the android. This took 18 seconds. I then closed the android joplin app.
  3. After 15 minutes, I opened joplin on my desktop and synchronized. This took 4766 seconds.

I checked for any conflicts and there weren't any. However, I did not see the additional change made on the android side. Any ideas what might be going on or if I'm messing something up? Thanks in advance for your help!

Hi, thanks for detailed step process, the last step is certainly weird.
Although to be honest, uploading 740 notes (not items) in under 3 mins is a bit too fast (?), whereas 4500+ seconds is what I would expect from free Nextcloud account. I imagine the desktop app might have not uploaded all the items the first time (got interrupted somehow, skipped some attachments :man_shrugging: ).

To troubleshoot the issue, could you enable debugging, try syncing again and paste the log (in a codeblock pls)?

Sure thing! Here you go:

19:23:09: Preparing scheduled sync
Logger.ts:217 19:23:09: Starting scheduled sync
Logger.ts:217 19:23:09: Synchronizer: Sync: starting: Starting synchronisation to target 5... supportsAccurateTimestamp = false; supportsMultiPut = false [1641694989262]
Logger.ts:217 19:23:09: Synchronizer: Indexing resources...
Logger.ts:217 19:23:09: ResourceService::indexNoteResources: Start
Logger.ts:217 19:23:09: ResourceService::indexNoteResources: Completed
Logger.ts:217 19:23:23: Synchronizer: Sync target remote info: SyncInfo {version_: 3, masterKeys_: Array(1), e2ee_: {…}, activeMasterKeyId_: {…}, ppk_: {…}}
Logger.ts:217 19:23:23: Synchronizer: Sync target is already setup - checking it...
Logger.ts:217 19:23:23: Synchronizer: Sync target local info: SyncInfo {version_: 3, masterKeys_: Array(1), e2ee_: {…}, activeMasterKeyId_: {…}, ppk_: {…}}
Logger.ts:217 19:24:55: Synchronizer: TaskQueue.stop: syncDownload: waiting for tasks to complete: 0
Logger.ts:217 19:24:55: Synchronizer: TaskQueue.stop: syncDownload: Done, waited for 0
Logger.ts:217 19:25:08: Synchronizer: BasicDelta: Report: {"timestamp":0,"older":0,"newer":50,"equal":0}
Logger.ts:217 19:25:08: Synchronizer: Sync: fetchingTotal: Fetching delta items from sync target
Logger.ts:217 19:25:08: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:25:22: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:25:33: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:25:45: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:25:56: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:26:12: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:26:23: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:26:34: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:26:45: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:27:07: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:27:19: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:27:32: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:27:43: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:27:55: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:28:19: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:28:31: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:28:42: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:28:55: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:29:06: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:29:30: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:29:42: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:29:54: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:30:06: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:30:17: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:30:42: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:30:54: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:31:08: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:31:20: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:31:32: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:31:56: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:32:09: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:32:11: RevisionService: RevisionService::maintenance: Starting...
Logger.ts:217 19:32:11: RevisionService: RevisionService::maintenance: Service is enabled
Logger.ts:217 19:32:11: RevisionService: RevisionService::collectRevisions: Created revisions for 0 notes
Logger.ts:217 19:32:11: RevisionService: RevisionService::maintenance: Done in 109ms
Logger.ts:217 19:32:23: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:32:35: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:32:47: Synchronizer: Sync: fetchingProcessed: Processing fetched item
5Logger.ts:217 19:34:31: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:34:44: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:34:56: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:35:08: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:35:21: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:35:47: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:36:00: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:36:11: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:36:22: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:36:34: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:36:56: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:37:10: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:37:21: Synchronizer: BasicDelta: Report: {"timestamp":1641532369000,"older":49,"newer":50,"equal":1}
Logger.ts:217 19:37:21: Synchronizer: Sync: fetchingTotal: Fetching delta items from sync target
Logger.ts:217 19:37:22: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:37:59: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:38:11: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:38:22: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:38:34: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:38:45: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:39:09: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:39:21: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:39:34: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:39:45: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:39:56: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:40:20: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:40:34: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:40:44: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:40:58: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:41:11: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:41:24: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:41:35: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:41:49: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:42:11: RevisionService: RevisionService::maintenance: Starting...
Logger.ts:217 19:42:11: RevisionService: RevisionService::maintenance: Service is enabled
Logger.ts:217 19:42:11: RevisionService: RevisionService::collectRevisions: Created revisions for 0 notes
Logger.ts:217 19:42:11: RevisionService: RevisionService::maintenance: Done in 107ms
Logger.ts:217 19:42:15: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:42:28: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:42:40: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:42:53: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:43:06: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:43:34: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:43:46: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:44:00: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:44:11: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:44:23: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:44:48: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:44:59: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:45:11: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:45:23: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:45:35: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:45:59: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:46:10: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:46:20: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:46:33: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:46:44: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:47:09: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:47:21: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:47:32: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:47:43: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:47:56: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:48:09: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:48:20: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:48:32: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:48:43: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:49:07: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:49:18: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:49:30: Synchronizer: BasicDelta: Report: {"timestamp":1641534964000,"older":99,"newer":50,"equal":1}
Logger.ts:217 19:49:30: Synchronizer: Sync: fetchingTotal: Fetching delta items from sync target
Logger.ts:217 19:49:30: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:49:56: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:50:06: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:50:18: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:50:30: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:50:40: Synchronizer: Sync: fetchingProcessed: Processing fetched item
Logger.ts:217 19:50:51: Synchronizer: Could not refresh lock - cancelling sync. Error was: Error: Lock has expired
    at LockHandler.<anonymous> (LockHandler.ts:384)
    at Generator.next (<anonymous>)
    at fulfilled (/tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/services/synchronizer/LockHandler.js:5)
    at processTicksAndRejections (internal/process/task_queues.js:95)
log @ Logger.ts:217
warn @ Logger.ts:92
(anonymous) @ Synchronizer.ts:495
(anonymous) @ LockHandler.ts:399
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/services/synchronizer/LockHandler.js:5
processTicksAndRejections @ internal/process/task_queues.js:95
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/services/synchronizer/LockHandler.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/services/synchronizer/LockHandler.js:5
processTicksAndRejections @ internal/process/task_queues.js:95
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/services/synchronizer/LockHandler.js:7
(anonymous) @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/services/synchronizer/LockHandler.js:8
__awaiter @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/services/synchronizer/LockHandler.js:4
(anonymous) @ LockHandler.ts:362
listOnTimeout @ internal/timers.js:555
processTimers @ internal/timers.js:498
Logger.ts:217 19:50:51: Synchronizer: TaskQueue.stop: syncDownload: waiting for tasks to complete: 5
Logger.ts:217 19:50:51: Synchronizer: Sync: cancelling
Logger.ts:217 19:51:21: Synchronizer: TaskQueue.stop: syncDownload: timed out waiting for task to complete
log @ Logger.ts:217
warn @ Logger.ts:92
(anonymous) @ TaskQueue.ts:139
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Promise.then (async)
step @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:7
fulfilled @ /tmp/.mount_JoplinveoyXM/resources/app.asar/node_modules/@joplin/lib/TaskQueue.js:5
runNextTicks @ internal/process/task_queues.js:60
listOnTimeout @ internal/timers.js:524
processTimers @ internal/timers.js:498
Logger.ts:217 19:51:21: Synchronizer: TaskQueue.stop: syncDownload: Done, waited for 30058
Logger.ts:217 19:52:11: RevisionService: RevisionService::maintenance: Starting...
Logger.ts:217 19:52:11: RevisionService: RevisionService::maintenance: Service is enabled
Logger.ts:217 19:52:11: RevisionService: RevisionService::collectRevisions: Created revisions for 0 notes
Logger.ts:217 19:52:11: RevisionService: RevisionService::maintenance: Done in 107ms
Logger.ts:217 19:52:15: Synchronizer: Synchronisation was cancelled.
Logger.ts:217 19:52:15: Synchronizer: Sync: finished: Synchronisation finished [1641694989262]
Logger.ts:217 19:52:15: Synchronizer: Operations completed: 
Logger.ts:217 19:52:15: Synchronizer: fetchingTotal: 150
Logger.ts:217 19:52:15: Synchronizer: fetchingProcessed: 106
Logger.ts:217 19:52:15: Synchronizer: cancelling: 1
Logger.ts:217 19:52:15: Synchronizer: Total folders: 36
Logger.ts:217 19:52:15: Synchronizer: Total notes: 353
Logger.ts:217 19:52:15: Synchronizer: Total resources: 353
Logger.ts:217 19:52:16: DecryptionWorker: starting decryption...
Logger.ts:217 19:52:16: DecryptionWorker: completed decryption.

Ok, according to the log it seems to be a resfresh of lock issue. Usually it happens either because the lock folder has insufficient permissions / some other trouble with writing there, or WebDAV server misbehaving/misconfigured.

To cut off later problem, you can try moving temporarily to another cloud provider (Dropbox for example).

I see. Here's what I did:

  1. Created a free dropbox account.
  2. Configured the sync point in joplin desktop to be this new dropbox account.
  3. Synced to dropbox from desktop. Took 897 seconds.
  4. Opened joplin android and configured android to sync to dropbox.
  5. Clicked synchronize in android and let it sync. Took 1507 seconds.

I noticed that the desktop app and the android app were both the same as when I was using the Nextcloud instance. There were no conflicts on either app.

I made a change on a note in the desktop app and after pressing sync, there was an immediate conflict that showed up. The sync took 97s. The conflict was between the change I made today and the change I made on android yesterday. I corrected the conflict and resynced from the desktop app. The sync took 4 seconds. I then opened the android app and pressed synchronize. That sync took 4 seconds and the changes made on the desktop were there.

I then made a change to the same note on the android app, synced it (11 seconds), opened the desktop app, synchronized (5 seconds), and noticed the changes were there. I tried to put the log in a code block but it exceeds the maximum number of characters for a post. I also tried to upload the log file here and I kept getting an error. I can probably split the log up into sections and make multiple responses here if it would be helpful.

Does this help narrow down what the problem might be? I'd prefer to use Nextcloud as the sync point and be happy to make any configuration changes to make it successful.

I tried to sync to a free cloudamo account to narrow the problem but kept getting weird server side errors. In the end I gave up and presumed provider still hasn't fixed the problem mentioned here

So far, it's best either to reopen the support ticket or move away to different storage provider entirely.

I think you're right about the cloudamo situation. I looked on the nextcloud forum and several people have been posting issues about cloudamo, whether they be related to sync issues, files no longer showing up, or poor customer service. Also noticed cloudamo is not recommended as a Nextcloud provider on the Nextcloud website anymore.

Thanks for getting to the bottom of this!

I tried a different Nextcloud provider (The Good Cloud) and everything appears to be working now. As an aside, seem to have fallen victim to Cloudamo's shenanigans as my most of my files I have uploaded are no longer there. Heads up to anyone reading this and is considering Cloudamo as a Nextcloud provider.

1 Like