Remote device disconnected

Syncthing-Fork 1.23 on Samsung Android 13. Configured to sync data from Samsung to local network other device. Used to work up today when I detected remote device is being constantly in Disconnected status on Samsung’s Syncthing-Fork. So I have clear cache and data on Syncthing-Fork and started from scratch. To my surprise Syncthing-Fork is not advertising itself and is not discovered by other device. I tested the same on another Android phone and on this one Syncthing-Fork is discovered by other device which shows that the issue is with Samsung phone.

In the Syncthing log on Samsung Android 13 phone repeating entries:

22:21:54 [MGX26] DEBUG: multicastBeacon: Entering the backoff state. 22:21:54 [MGX26] DEBUG: multicastBeacon: Failed service ‘Service@0x4000442840 created by multicastBeacon@0x40003ccd20/writer’ (3.999969 failures of 2.000000), restarting: false, error: route ip+net: netlinkrib: permission denied 22:22:45 [MGX26] DEBUG: broadcastBeacon: Exiting backoff state. 22:22:45 [MGX26] DEBUG: broadcastBeacon: Failed service ‘Service@0x40004425c0 created by broadcastBeacon@0x40003ccc30/writer’ (1.000000 failures of 2.000000), restarting: true, error: route ip+net: netlinkrib: permission denied 22:22:45 [MGX26] DEBUG: broadcastBeacon: Failed service ‘Service@0x40004425c0 created by broadcastBeacon@0x40003ccc30/writer’ (1.999971 failures of 2.000000), restarting: true, error: route ip+net: netlinkrib: permission denied 22:23:09 [MGX26] DEBUG: broadcastBeacon: Entering the backoff state.

In the Web GUI in “This Device” Discovery 3/5 shows:

I have no idea what happened as it used to work until today. Update from Syncthing-Fork done few days ago from 1.22 to 1.23 and it worked fine.

The local discovery failure is a known problem on recent Android versions which don’t allow broadcast traffic anymore.

Further, this recently discovered issue could be related if things lose connection without coming back: Relay listener does not restart sometimes · Issue #8749 · syncthing/syncthing · GitHub

Thank you for your response. I can confirm that the issue doesn’t exists on Android 9. But strange thing is that today my Android 13 Samsung with Syncthing-Fork 1.23 successfully connected to the target local device twice on around 20 attempts so it is really weird behavior. Looking forward for a fix in next version.

Today Samsung Android 13 has not established a connection with local device. Not once. All day “disconnected” status.

I’ve done extensive testing to see if really Android 13 is to blame here as I lost a sync that was working fine for me which stopped two days ago.

I have 4 devices:

Android13 3BNXP7

Android9 R3OZJ7

Windows11 GLQQG3

OdroidC2 HRPDRR

All running latest Syncthing version 1.23.0

Syncthing on OdroidC2 is running in docker’s container.

Each device is having only Local Discovery enabled. NAT Traversal, Global Discovery and Relaying are disabled.

Sync flow needed is as follow:

Android9 -OdroidC2

Windows11 -OdroidC2

Android13 -OdroidC2

Discovery is as follow:

Android13 (discovered devices: Windows11 GLQQG3 and Android9 R3OZJ7)

Android9 (discovered devices: Windows11 GLQQG3and OdroidC2 HRPDRR)

Windows11 (discovered devices: Android9 R3OZJ7 and OdroidC2 HRPDRR)

OdroidC2 (discovered devices: Windows11 GLQQG3 and Android9 R3OZJ7)

Android13 is not discovered on Android9, Windows11 nor OdroidC2.

On Android13 only Android9 and Windows11 are discovered but OdroidC2 doesn’t.

When manually added OdroidC2 on Android13 and vice versa then on both devices partner remain as Disconnected.

I have tried a lot of settings on both affected devices: Android13 & OdroidC2 and still Android13 is not announcing itself and OdroidC2 is not seen advertised on Android13 while other devices are.

Can someone please help me to make synchronization Android13 -OdroidC2 running? I’m getting crazy not able to find the pattern why this particular pair of sync won’t work.

Enabling NAT Traversal, Global Discovery and Relaying on Android13 and OdroidC2 is the fix - now Android13 send files to OdroidC2.

I don’t know but for the pair Android9 → OdroidC2 it’s not needed, only Local Discovery is enough on Android9 & OdroidC2.

Next days I will try to disable one by one from NAT Traversal, Global Discovery and Relaying to see which is required for having sync running for Android13 → OdroidC2.