syncthing/syncthing-android

Can't set a share on the internal storage to "Send & Receive"

UtkarshVerma opened this issue ยท 10 comments

I can't set a share to "Send and Receive" through the app. It shows the following error:

WhatsApp Image 2023-09-06 at 15 27 09

The share is on my internal storage and not on the SD card. I can change this setting through the Web GUI though. Please let me know if you need any logs.

Version Information

Syncthing Version: v1.23.7
Android Version: Android 13

Same on Pixel 8 (Android 14)

Same on Pixel 7a. Changing the option in the web GUI does not change the readout in the native application, but it does in fact allow for receiving changes and writing them to internal storage.

I'd encourage anyone who faces this issue to make sure to select a folder in a non-restricted location. In the OP, even though quite out-dated by now, ~ is used, which is quite tricky on Android as that probably directs to the app's home(?). Afaik there is not really a linux-like home directory. I'd avoid using it at least.

OnePlus 9, Android 13.1, syncthing version 1.23.7
Folder and .stfolder were created at /storage/emulated/0 but I'm also getting the "read only" message ๐Ÿคท

Running into the same thing on my Pixel 8. Sync was working fine and then recently (in the last week or so?) two folders changed to "Send only". The folders are in /storage/emulated/0/sync.

In the Android GUI, Folder Type is grayed out, if I tap it, a toast message appears: "Your Android version only grants Syncthing readonly access to the selected folder." I just opened the Web UI (from the Android app main menu), and there I'm able to change the folders back to "Send & Receive" and then they resync successfully!

The Android app seems to be incorrectly detecting the readonly problem, since it actually can sync just fine now. In fact, the folders still show as "Send only" in the Android UI, even though the web UI is now showing "Send & Receive" for them.

Pixel 8 Pro / Android 14 / Syncthing 1.27.2

Running into the same thing on my Pixel 8. Sync was working fine and then recently (in the last week or so?) two folders changed to "Send only". The folders are in /storage/emulated/0/sync.

In the Android GUI, Folder Type is grayed out, if I tap it, a toast message appears: "Your Android version only grants Syncthing readonly access to the selected folder." I just opened the Web UI (from the Android app main menu), and there I'm able to change the folders back to "Send & Receive" and then they resync successfully!

The Android app seems to be incorrectly detecting the readonly problem, since it actually can sync just fine now. In fact, the folders still show as "Send only" in the Android UI, even though the web UI is now showing "Send & Receive" for them.

Pixel 8 Pro / Android 14 / Syncthing 1.27.2

Thank You So Much Web UI Worked ๐Ÿ’“

I experienced this and the web ui workaround worked.

For developers: Although my error log says permission denied, it seems like running a shell command is testing more than just writing a file. Why not use new File(...).createNewFile() ?

Same on Samsung A54 5G, Android 14. I created a folder as Send/Receive in internal storage, it worked well, and randomly changed itself to "Send Only" with this warning text. I was able to change it in the Web GUI back to Send/Receive and all is well.

I experienced this and the web ui workaround worked.

For developers: Although my error log says permission denied, it seems like running a shell command is testing more than just writing a file. Why not use new File(...).createNewFile() ?

Yes I strongly agree: if not root, the app should just use the standard Java interface...

No need to report any more that this happens, it's clear it does. Something in whatever test/heuristic we use to determine if the location is writable is not working as expected. There's no additional info needed, just an investigation/fix.