[Unexpected Behaviour?] Deleted Files in "Receive Only" Folder does not get re-synced

I’ve been lurking in the Syncthing forums (and subreddit), searching and reading in hopes of finding an answer to my situation. But I feel like I have not been able to find a clear answer or that the last datapoint seem to be 2-3 years ago (2021 to 2023).

This is my current setup Mobile Phone “A” set to “Send Only” Macbook exSSD “B” set to “Receive Only” Mobile Phone “C” set to “Receive Only” I’m also running Syncthing v1.26.1 on both macOS and my Android phones.

So far, everything has worked out fine and the folders across the 3 devices have synced successfully.

However, I deleted 4x photos from Mobile Phone “C” and my understanding is that Syncthing would re-sync and re-download these 4 deleted photos from “A” back into “C” but that did not happen - is this expected behaviour?

  • WebGUI is showing these 4 files to be “Out of Sync” with no option to Override or Revert
  • As far as I’m aware, I did not set-up the “ignoredelete” option.
  • I understand that “C” is set to “Receive Only” so it won’t send out any changes (such as the delete) but I was under the impression that a re-scan (which I did) would cause “A” to send the 4x photos again.

Can someone point me to the right direction please?

Add-on Question: I was trying to set-up the 3 devices in a mesh network to speed up the sync process (so the devices are all added as remote devices for each and the same folder is also shared - is this all to it?)

I initially wanted the workflow to be A > B > C which I think I’ll setup going forward. This means I need to keep only add B to A, C to B right?

Which also brings me to the question of if I do want to use B as the main backup (I understand this isn’t the original design of Syncthing), how should I go about deleting files in A and C to prevent “Out of Sync” errors?

  • I understand the manual workaround was always to sync to a “holding folder” of sorts, copy the files into the way I want to organize things and then delete it from A and have that change slowly sync to B and C?

Afaik it should show as ‘Locally Changed Items’, and not ‘Out of Sync’ specifically. Like the following, on the device where you deleted the files in the ‘receive only’-folder:

Screenshot 2023-11-19 at 12.18.31

So then the initial question would be, what you actually see in the Web-GUI of [Phone C] (the Android GUI seems to lack this functionality)?

It wouldn’t redownload them without user-interaction though, it does require a manual action.

Yep, if they all share the same folder with each other where the folder-ID is the same - it’s practically working as a ‘mesh’. But how this actually works out obviously depends on the set folder-type on each device.

Set versioning on all devices really, and I guess on B without an expiration. This is probably the best option using solely Syncthing.

Thanks @er-pa ! I went to Phone C and checked its Web GUI and saw the red Revert Local Changes button with 10 “Locally Changed Items”:

  • 4 are the deleted photos
  • 2 are the videos I manually added (to test something)
  • 4 are Google Photos related folders and .stfolder(1) - the latter of which I’m trying to figure why it is created.

Can I clarify that when you say “require a manual action” to redownload, I would need to actually click on “Revert Local Changes” for Syncthing to re-sync and re-download the 4 deleted photos (and also delete the other 6 folders/files too) right?

Just to clarify my earlier statements: Phone C is showing on Macbook B WebGUI as a Remote Device

  • it shows 4 items as Out of Sync
  • it also shows the status as Syncing 99%. I suppose it will remain in this state until I Revert Local Changes?

In my case, with only one “Send Only” and two devices as “Receive Only”, would the two “Receive Only” actually share files with one another to help this “mesh” reach 100% across all 3 devices?

Thanks for this. I’ll go give the support documentation on Versioning a closer read and see how I can apply it to my current use case.

Last question - If I were to add ignore patterns, when do the changes occur? Would it happen mid-sync? Or in the events that files are already synced, would the files be deleted automatically once I updated the new rules?

Correct, that’s how it should work:) But I have to stress to always make sure to have backups of your data before doing such things :wink: now, a receive-only folder is quite safe in that regard (the data should still be on the sending side), but one never can be too certain.

The exact condition I’m not sure of, but yes, once that remote device makes its local state equal to the global state - this 99% hung state should disappear.

Do keep in mind that Syncthing isn’t a backup program though:) so for a proper backup solution you prob want to use something in addition to Syncthing. But with proper versioning and the folder-types set in a supportive way, you can surely come far.

I’m not super familiar with ignore patterns, so this you prob should try out in a test-configuration (just two random test folders synced between your devices). I’m also not sure what you meant with ‘mid-sync’, but in the very base the ignore-patterns influence the device you set it on in the following way;

Say Device A has Folder A (synced with Device B), then ignoring 1.txt will make the local changes to 1.txt be ignored (not announced to device B) ánd it ignores potential incoming files called 1.txt from device B (also, paths may be of importance).

As far as I know, if a file already exist and you decide to ignore it afterwards - nothing happens to that file but it will get reduced from the local state. Changes won’t get announced anymore but the file will not automatically be deleted.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.