What does it mean when max-Concurrent-Incoming-Request-KiB = 0?

(Sorry about the hyphens in the title, but the forum prevented me from posting with the proper name.)

I’m new to Syncthing, and learning about the various configuration options.

The tuning page suggests increasing maxConcurrentIncomingRequestKiB if the computer has plenty of spare RAM, which mine does.

So, looking at ~/.local/state/syncthing/config.xml (I hope that this is the correct file), I see that maxConcurrentIncomingRequestKiB = 0. I have searched, but cannot find anything that explains what this means. Does zero mean the default value (256 MiB), unlimited, or something else?

Side question: When I update config.xml, does Syncthing pick it up immediately, or do I need to restart Syncthing?

I’m running Linux Ubuntu server 26.04.

0 means the default value in this case, yes.

It requires a full restart. However, you should refrain from touching config.xml by hand whenever possible. You can set all of these advanced options through the GUI (Actions → Advanced → Options → Max Concurrent Incoming Request KiB) in which case the options will be applied immediatly without a restart*. Hand-editing the config is very error prone, and syncthing may also overwrite this file at any time, destroying your changes. Only ever edit the config by hand when syncthing is stopped.

*In most cases, some exceptional advanced options could still require a restart (syncthing will tell you about those).

Thank you! I have used the GUI as you recommended.

I have a new question regarding caseSensitiveFS.

I have three devices running ext4 on Linux, and they are case-sensitive. But, I also have an Android, which is case-insensitive.

Should I stick to the default caseSensitiveFS = false for safety, or is it better (for performance) to set it to true on the Linux devices (not on the Android device, obviously)? I’m wondering if setting it to true could potentially cause problems because data is shared with Android.

caseSensitiveFS only affects the local filesystem(s) where the syncthing instance runs. It does not affect handling of remote devices. You can set this to true if you can assert that all filesystems involved in handling the given folder (also consider any sub-mounts you may have) on this device are guaranteed to be case-sensitive. Technically, having this disabled results in an extra lstat for every sync operation. This can be expensive on some filesystems / operating systems (if the in-memory metadata caching is not sufficient to maintain a good cache hit ratio), otherwise this has little effect.

Thank you. On my Linux boxes, I can indeed assert that the file systems are case-sensitive (they’re ext4). I don’t use Syncthing on any removable drives.

I’ll change it to true for those computers.