Slow sync with an Android device running Syncthing Fork

Since the original android app is retired, I installed the Syncthing Fork alternative. While it is all good and working, it’s very slow to download the files. Based on what I saw on its Web GUI, the speed is less than 100 KB/s. This is for downloading 6 PDF files with a total of ~70 MB. Also, the phone and the computer that was running the Syncthgin server were on the same network and the phone was connected through the Wifi.

I did look into the logs here what I think is relevant to this particular folder:

2024-12-22 13:09:43 Adding folder "Cell Phone" (mvxo2-*****)
2024-12-22 13:09:43 No stored folder metadata for "mvxo2-*****"; recalculating
2024-12-22 13:09:43 Ready to synchronize "Cell Phone" (mvxo2-*****) (sendreceive)
2024-12-22 13:09:43 Device QRX**** folder "Cell Phone" (mvxo2-*****) has a new index ID (0x21**************)
2024-12-22 13:09:43 Completed initial scan of sendreceive folder "Cell Phone" (mvxo2-*****)
2024-12-22 13:24:46 Listing network interfaces: route ip+net: netlinkrib: permission denied

And here are the versions of all the components involved:

  • Server version: v1.28.1, Linux (64-bit Intel/AMD Container) “Gold Grasshopper”
  • Android app version: Syncthing Fork Wrapper v1.28.1.1
  • Client devices:
    • Pixel 6: Android 15
    • Samsung Galaxy Tab S7: Android 13

Any idea what might be the problem?

The log doesn’t really contain any useful information. Please check in the Web GUI (available via the left slide-out menu) what kind of connection is used between the two devices.

However, seeing that you’re dealing with two Android machines, it’s likely that they are connected via a relay, which would explain the slow sync.

Thanks @tomasz86 for the reply.

I think there’s been a misunderstanding which is my fault. I didn’t mean that the two devices are syncing with each other. I have a TrueNAS Scale server machine where I’ve installed Syncthing on it as a docker container and both Android devices are syncing with that machine.

Nevertheless, I just checked the connection between my phone and the server and it says “Relay WAN” and when I click on it, it says “Connections via relays might be rate limited by the relay”. Which proves your hypothesis.

Now my question is, why there’s a relay involved in my connection when both devices are on the same network? How can I force it to “TCP LAN” just like my desktop’s connection’s to the server? To confirm, I just checked and my Android device and the server are on the same IP range. I don’t understand what could have caused the Syncthing to decide to switch to “Relay WAN”!

Here’s more information about my setup. I have a laptop syncing the same folder as the two Android devices. It is connected to the same server using the same Wifi.

When I opened the laptop and then the local Syncthing Web GUI, at first it showed “Relay WAN” for the connection type to the server but after a few seconds, it changes to “TCP LAN”. And now, the speed is perfect.

But both Android devices are stuck on “Relay WAN”. Any idea why?

Is it possible your 2 android devices are actually using your data plan rather than your wifi connection?

Hi @Tominthevan and thanks for the reply.

I assure you that they are connected to the same Wifi and they’ve obtained IPs in the same range as the NAS. And I just checked (after 4 days from the initial post) and they are still showing “Relay WAN”.

What IP address range is the Docker container running Syncthing using?

@gadget thank you for pointing that out. While I was trying to gather information to answer your question, I realzied that there is this unchecked checkbox in TrueNAS Scale WebUI for the Syncthing container configuration which says:

Help: Host Network

Enabling this will use the host network for Syncthing. The TCP and UDP ports will listen on port 22000. Web UI will listen on the port specified above.

As soon as I checked this box and restarted the service, now the Android devices are both connected as “TCP LAN”.

Much appreciated for drawing my attention to the port settings on the docker.

1 Like

You’re welcome. :smile: