Sometimes when running Resilio Sync on Windows, one of the machines may get stuck for a long time at a certain percentage, with no clear reason why it fails to complete.
Although the user interface doesn’t provide much information about what the program is doing, I had a suspicion that it could be due to some kind of permissions error on the files it was trying to sync.
Lo’ and behold, my suspicions were confirmed empirically, but your mileage may vary.
To unblock Resilio Sync:
First, stop the Resilio Sync program.
Then, run the icacls
command in the folder you want to sync, which will reset the file and folder permissions to the default for your user:
icacls * /t /c /reset
This will spew out a bunch of status messages as each file is handled:
C:\Users\Max\Downloads\arduino-1.8.8>icacls * /t /c /reset
processed file: arduino-builder.exe
processed file: arduino.exe
processed file: arduino.l4j.ini
processed file: arduino_debug.exe
processed file: arduino_debug.l4j.ini
processed file: drivers
processed file: examples
processed file: hardware
processed file: java
processed file: lib
processed file: libraries
processed file: libusb0.dll
processed file: msvcp100.dll
processed file: msvcr100.dll
processed file: reference
processed file: revisions.txt
[...]
Once icacls
finishes running, restart Resilio Sync and it should sync to completion.
It may be necessary to reset the file permissions on each system that needs syncing.
And, if some of the files that need syncing are executables, those programs may need to be stopped as well before syncing.