Error on synchronize to Android filesystem due to lock

Hello everyone!
I am trying to synchronize Joplin to filesystem so I can sync it with SyncThing. I create a folder in my file manager and specify the path in Joplin, but when I press "Synchronize" it gives me the following error: (written out so that others can search this in the future, either via Google or on this forum)
Last error: Error: Error: Operation not permitted. Path: /storage/emulated/0/Joplin/locks/exclusive_mobile_5fc55aebc4b14bb1afb1c1efe00d17b.json

If I inspect the directory using my file manager, there are only two empty folders; locks/ and temp/.

I am running Samsung S20 Android 11, Joplin 1.4.11, and have granted Storage permission to Joplin when it asked for it. Also have tried reinstalling the app multiple times.

Does anyone know how I can fix or further debug this issue?

Thanks a lot for the help, and for the great work on the app!

2 Likes

hello
I have the same error here
My phone is Pixel 3 with Android 12, Joplin 2.6.3 / 2.6.1, synchronized with Syncthing
but Joplin 2.4.3 has no such issue
does anyone know how to fix this bug? Thanks :slight_smile:
the debug report is below:
Date,Level,Message
11-24T22:07:23,30,"""DecryptionWorker: cannot start because no master key is currently loaded.""
11-24T22:07:22,20,"Synchronizer: ""Error: Error: Operation not permitted. Path: /storage/emulated/0/Sync/Joplin/locks/2_2_5dcd0e673bb9464496079faeaf6eaf87.json
Code: EUNSPECIFIED
value@index.android.bundle:1029:275
index.android.bundle:1029:4056
p@index.android.bundle:82:588
index.android.bundle:82:1893
p@index.android.bundle:82:588
o@index.android.bundle:82:1069
index.android.bundle:82:1241
u@index.android.bundle:76:157
index.android.bundle:76:866
index.android.bundle:84:1672
k@index.android.bundle:84:500
w@index.android.bundle:84:898
callReactNativeMicrotasks@index.android.bundle:84:3054
value@index.android.bundle:37:2868
index.android.bundle:37:960
value@index.android.bundle:37:2504
value@index.android.bundle:37:919
value@[native code]
value@[native code]""
11-24T22:07:22,30,"Synchronizer: ""Total folders: 1""
11-24T22:07:22,30,"Synchronizer: ""Total notes: 5""
11-24T22:07:22,30,"Synchronizer: ""Total resources: 3""
11-24T22:07:22,20,"Synchronizer: ""There was some errors:""
11-24T22:07:22,30,"Synchronizer: ""Operations completed: ""
11-24T22:07:22,10,"Synchronizer: ""Error: Error: Operation not permitted. Path: /storage/emulated/0/Sync/Joplin/locks/2_2_5dcd0e673bb9464496079faeaf6eaf87.json
Code: EUNSPECIFIED
value@index.android.bundle:1029:275
index.android.bundle:1029:4056
p@index.android.bundle:82:588
index.android.bundle:82:1893
p@index.android.bundle:82:588
o@index.android.bundle:82:1069
index.android.bundle:82:1241
u@index.android.bundle:76:157
index.android.bundle:76:866
index.android.bundle:84:1672
k@index.android.bundle:84:500
w@index.android.bundle:84:898
callReactNativeMicrotasks@index.android.bundle:84:3054
value@index.android.bundle:37:2868
index.android.bundle:37:960
value@index.android.bundle:37:2504
value@index.android.bundle:37:919
value@[native code]
value@[native code]""
11-24T22:07:22,30,"Synchronizer: ""Sync: finished: Synchronisation finished [1637762842186]""
11-24T22:07:22,30,"""MigrationHandler: Acquiring exclusive lock""
11-24T22:07:22,30,"""MigrationHandler: Sync target version is 0 or 1 - creating "locks" and "temp" directory:", "{"version":0}""
11-24T22:07:22,30,"Synchronizer: ""Sync target remote info:", "{"version_":0,"masterKeys_":[],"e2ee_":{"value":false,"updatedTime":0},"activeMasterKeyId_":{"value":"","updatedTime":0},"ppk_":{"value":null,"updatedTime":0}}""
11-24T22:07:22,30,"Synchronizer: ""Sync target is new - setting it up...""
11-24T22:07:22,30,"""ResourceService::indexNoteResources: Completed""
11-24T22:07:22,30,"""DecryptionWorker: cannot start because no master key is currently loaded.""
11-24T22:07:22,30,"""ResourceService::indexNoteResources: Start""
11-24T22:07:22,30,"Synchronizer: ""Indexing resources...""
11-24T22:07:22,30,"Synchronizer: ""Sync: starting: Starting synchronisation to target 2... supportsAccurateTimestamp = false; supportsMultiPut = false [1637762842186]""
11-24T22:07:22,30,"""Starting scheduled sync""
11-24T22:07:22,30,"""Preparing scheduled sync""
11-24T22:07:21,30,"Synchronizer: ""Total folders: 1""
11-24T22:07:21,30,"Synchronizer: ""Total notes: 5""
11-24T22:07:21,30,"Synchronizer: ""Total resources: 3""
11-24T22:07:21,20,"Synchronizer: ""There was some errors:""
11-24T22:07:21,20,"Synchronizer: ""Error: Error: Operation not permitted. Path: /storage/emulated/0/Sync/Joplin/locks/2_2_5dcd0e673bb9464496079faeaf6eaf87.json
Code: EUNSPECIFIED
value@index.android.bundle:1029:275
index.android.bundle:1029:4056
p@index.android.bundle:82:588
index.android.bundle:82:1893
p@index.android.bundle:82:588
o@index.android.bundle:82:1069
index.android.bundle:82:1241
u@index.android.bundle:76:157
index.android.bundle:76:866
index.android.bundle:84:1672
k@index.android.bundle:84:500
w@index.android.bundle:84:898
callReactNativeMicrotasks@index.android.bundle:84:3054
value@index.android.bundle:37:2868
index.android.bundle:37:960
value@index.android.bundle:37:2504
value@index.android.bundle:37:919
value@[native code]
value@[native code]""
11-24T22:07:21,30,"Synchronizer: ""Operations completed: ""
11-24T22:07:21,10,"Synchronizer: ""Error: Error: Operation not permitted. Path: /storage/emulated/0/Sync/Joplin/locks/2_2_5dcd0e673bb9464496079faeaf6eaf87.json
Code: EUNSPECIFIED
...

I have the exact same issue. Started to happen today, right after I upgraded on Android to 2.6.3 .

I also use Syncthing to synchronize. But the issue is not with Syncthing - I disabled it (ST), restarted the device, and the issue remains.

This is after Joplin+Synchting always worked great for me (on 3 devices) since I started a couple of months ago.

Can anyone help please?

Thanks

There is also a GitHub issue for Version 2.6.3

1 Like

I see, thanks! Hopefully it's resolved soon.

same issue, I hope it will be fixed soon too!

2 Likes

It's quite disappointing that this problem continues.
I have the same problem with my android device (android 11)
I was quite excited with the update in the android store to version 2.6.8 in hope that this will fix this issue.
But no, the issue continues, the permission the app requests are "Access to multimedia content only"
I reinstalled the app with the hope of this been a fluke during the install, but no, just lost access to my previous notes.
This app was really useful to me, now I need to find another way to sync my work notes between my devices.

I don't think anyone is working on this filesystem sync issue, so not sure when or if it will be fixed unfortunately.

Hello. I'm looking for a little more information on what the exact issue is. Is it:

a) Joplin cannot access the SyncThing repository folder

b) Joplin cannot access anything besides it's own private storage, of which is not accessible to the user? (Pretty sure no, cuz thinking about it, I came up... )

c) Joplin can only access any file it wants in it's private data folder AND any file in the user's area IF IT IS A MEDIA FILE. Given that all the files are markdown or json, this would be why there's no access.

If the answer is 'c', probably a silly question but any reason why all those .md files couldn't be changed to .png and .json to .jpeg? :upside_down_face: I mean, if they are going to come up with a stupid rule on 'how to protect' a user from their own data, we should be able to come up with workarounds to their poorly implemented attempt at a solution.

I believe (haven't tested it though) it is possible to request access to a folder and read/write files there but it needs a different API that isn't currently available for react native apps.

oh no too bad!
So options do people using file system sync have to have our notes on Android >= 11?

Any news on this?. I was in the process of ditching Evernote, but couldn't because of this problem.

1 Like

I am having this issue also since I switch from WEBDAV, Since pCloud no longer offers WEBDAV for free accounts :frowning:

I tried this on 3 different Android device

  • Two of the devices with Syncthing and using SD adoptable storage
  • One of the devices without Syncthing and using internal storage

I wish there could be a native Android app for Joplin, I understand making one from scratch will take time and is easier said than done and to maintain two apps is harder than one but a native Android app will reduce these issues or at least be easier to solve,