I installed the Syncthing app and tried to share a folder from the external SD card.
Under settings, it says "Folder type: Send Only". If I click on it, it pops up an error and says "Your android version only grants Syncthing readonly access to the selected folder".

This isn't true, though. Android provides apps with read-write access to the external SD card if the app asks permission first. There's an example here: https://www.youtube.com/watch?v=DamMdkeCwMQ&t=0m29s
When I click this option, it should not just refuse to change it, it should instead ask for write permission to the external SD card.
App Version: 1.2.0
Syncthing Version: v1.2.0
Android Version: Android 8.0.0 / Samsung Experience 9.0 / Kernel 3.18.91
Check https://github.com/syncthing/syncthing-android/issues/29 and various other duplicates (also forum) if you want more information on this.
@imsodin Sorry, what? #29 is about using root access to write to external SD, but root access is not required. Other apps can write to external SD without root access by asking permission to write to the root folder of the external SD card first.
Did you watch the video I linked?
Go language, in which syncthing is written, does not have a way to write to SD card as SD card access needs to go via a android feature called document providers, which is not simply filesystem access. That feature is only accessible from Java. The wiki, forum and tons of closed issues explain the details.
@AudriusButkevicius
So Android Syncthing app will never be able to sync files from an external SD card? Do you have any other apps you would recommend that serve the same purpose?
(There should be an FAQ explaining this instead of tersely directing people to a Github issue with 128 comments in it.)
It's able to sync from, you cannot sync to, unless you use workarounds suggested in the wiki.
@AudriusButkevicius Right, but that's backup, not two-way sync. I found Resilio Sync which does two-way sync with external SD, so I guess I'll use that for phone stuff and Syncthing for PC stuff.
Probably the error message should be changed, since this is a programming language issue, not an Android issue, and then you'll get fewer duplicate bug reports about it?
I disagree it's a programming language issue. Android forces you to use some silly abstractions to access the SD cards, yet there is no reason for to do it, as you can use internal storage normally, and work around it by merging the storage. So surely normal storage a access is still a thing, they just choose to bastardise it for sd cards.
Google just wants to kill sd cards as it's a pain to maintain a kernel with a set of features which they don't care about.
Since this is quite high up in search results here are the quicklinks:
FAQ:
(not easily possible, but there are workarounds)
https://github.com/syncthing/syncthing-android/wiki/Frequently-Asked-Questions
Issue
Long discussion about the problem:
https://github.com/syncthing/syncthing-android/issues/29
Most helpful comment
@AudriusButkevicius Right, but that's backup, not two-way sync. I found Resilio Sync which does two-way sync with external SD, so I guess I'll use that for phone stuff and Syncthing for PC stuff.
Probably the error message should be changed, since this is a programming language issue, not an Android issue, and then you'll get fewer duplicate bug reports about it?