SMBs and enterprise businesses that require timely access to business critical files need a synchronization solution that reliably synchronizes, distributes, and consolidates files across their replication environment. Which is why it’s frustrating when these solutions break down, and even more frustrating when they can’t figure out why.
As an open-source, P2P-based solution, Syncthing is both fast and transparent. Still, Syncthing users experience a common error: Syncthing reporting that folders are “out of sync.” Sometimes one or several files in the folder fails to sync. Sometimes the files are actually synced, but Syncthing reports otherwise. The result is the same — IT admins seeing red and worrying about how these errors will impact their business workflows.
To help you address these issues, we’ve put together this guide that:
- Describes how to check your Syncthing logs so you can spot errors
- Shares 5 common errors that cause Syncthing to report that folders/files are “out of sync”, and how to fix them
- Describes our own file synchronization solution, Resilio Connect — a faster, more reliable alternative to Syncthing.
Resilio Connect is an easy-to-use, enterprise-proven server synchronization solution that uses a peer-to-peer transfer architecture and WAN optimization technology to reliably sync, distribute, and consolidate files across any network faster than any other solution on the market. Businesses in tech, logistics, retail, marine, media, and gaming (among other industries) use Resilio Connect to reliably replicate files across their environment and enhance business workflows.
To see if Resilio Connect could be a good fit for your organization, schedule a demo.
How to Check Your Sync Logs
It’s not possible for anyone to definitively diagnose your Syncthing error without insight into your system. And before you attempt any solution to your issue, you should first check the status of your Syncthing configuration and jobs to narrow down the potential cause.
There are two ways to get insight into your Syncthing environment:
1. Syncthing REST API
The most reliable way to check Syncthing status is by using Syncthing’s REST API, which can be found here: http://localhost:8384/rest
In order to use the REST API, you need an API key (documentation on how to get an API key can be found here).
From there, you can check the status of your Syncthing environment, folders, and devices using the following:
Folders
/config/folders: Shows a list of folders.
/stats/folder: Shows folder statistics.
/db/status?folder=${folder.id}: Shows folder status.
/folder/errors?folder=${folder.id}: Shows folder errors.
/pending/folders: Shows pending folders
Devices
/config/devices: Shows a list of devices.
/stats/device: Shows device statistics.
/pending/devices: Shows pending devices.
Global
/system/error: Shows global errors.
For more information on using the REST API and checking Syncthing status, check out this useful guide on how to monitor Syncthing.
2. Syncthing-cli (Command Line Interface)
You can also install and configure Syncthing-cli, a command line tool for the Syncthing API. You can find Syncthing-cli as well as information on how to install and use it here.
5 Common Solutions to Syncthing “Out Of Sync” Issues
If you can’t spot the issue after checking your Syncthing logs, you can try the following solutions that have worked for other Syncthing users.
1. Unshare and Reshare the Problem Folder
Let’s start with the simplest solutions first. Many users have fixed their issue by simply unsharing and resharing the out of sync items. Typically, this works when you get an “out of sync” error after adding a new device to your environment.
2. Copy to an Unshared Folder
Another quick solution you can try is to:
- Copy the most up-to-date version of the offending files to an unshared folder.
- Delete the offending files on all machines in your replication environment.
- Copy the files back to a shared folder.
3. Delete the Sync and Folders and Rebuild
When the simpler solutions don’t work, then you need to consider going deeper. One potential solution is to restart your sync operation from scratch. By that we mean:
- Delete the synchronization operation and the folder that is out of sync (of course, maintain a saved copy of the folder elsewhere).
- Then rebuild the sync operation and return the folder to your sync environment.
4. Rebuild Your Syncthing Installation
If you’re consistently experiencing “out of sync” errors, then the problem may lie with your Syncthing installation. If your current Syncthing installation is old (e.g., 5+ years or so), there may have been updates since you first installed it. Syncthing may have fixed bugs that are the cause of your problems. Or the problems could be created by conflicts between the Syncthing updates and the way you have your installation configured. Either way, rebuilding your installation from scratch might fix your problems.
Start by syncing all pending changes to ensure your files are completely up to date. Then shut Syncthing down on all of your devices, erase all of your databases by deleting the entire index folders, then restart Syncthing on each device individually.
Fair warning: The more files/data you have, the longer this process will take.
5. Override Changes
Syncthing enables users to designate folders as “send only”, “receive-only”, or both. This is designed for situations where you want to keep a reference copy on a device that doesn’t propagate changes to any other device.
If a folder is designated as “send only”, any changes made to the files on other devices are not synced to the folder on the “send only” folder, and it will be labeled as “out of sync.”
When this occurs, a red “Override Changes” button will appear at the bottom of the folder information. Clicking this button will overwrite any changes made to the files on this host and delete any files that don’t exist on the host.
Use Resilio Connect for Fast, Reliable Synchronization
If you’re tired of dealing with sync issues but still want the fast, reliable file replication that P2P transfer provides, Resilio Connect is the perfect alternative to Syncthing. While similar to Syncthing in many ways, Resilio Connect is also:
- Easier to use
- Faster (10 Gbps+ per server) and more innovative
- More scalable and reliable
- More secure
Case Study: Blockhead
“Whereas some of the other solutions took a ‘send the file, hope for the best’ approach, Resilio Connect had a robust process around its synchronization. The methodical way that it goes about analyzing changes and quantifying what those changes are and then only transferring the difference, I think that is hugely powerful.”
Ease of Use and Flexibility
While Syncthing can be easy to deploy on simple installations, more complex applications require a degree of expertise. And though they provide plenty of documentation to help, first time users who aren’t already familiar with Syncthing will have more difficulty getting set up. But Resilio works on a large number of operating systems (such as Windows, Ubuntu, Linux, Mac, and more) and can be set up on your existing infrastructure and begin replicating in as little as 2 hours.
And Resilio’s Management Console provides you with full control over your replication environment, real-timenotifications, and detailed logs. You can use the console to adjust replication parameters in order to optimize network performance (by adjusting buffer size, packet size, and more), control storage features (i.e., disk io threads, file priorities, and data hashing), create rules governing bandwidth usage on each device, and use Resilio’s REST API to control replication functionality (i.e., manage agents, create replication groups, control permissions, control jobs, and more).
Some Syncthing users have complained that Syncthing’s web-gui isn’t user-friendly. Resilio, however, provides an easy-to-use web interface that can be accessed on any web browser.
While both offer some similar features, such as file versioning (i.e., archiving old copies of edited files for a period of time), Resilio also includes features you won’t find in Syncthing, such as:
- An iOS and Android app (installing Syncthing on mobile devices requires the use of 3rd party apps)
- Selective sync: Users can choose which files sync and which don’t.
- Encrypted folders: Users can encrypt and sync folders with another device. While no one using that device will be able to access the folder, you’ll have another peer in your replication environment that can share the data, making file transfer faster and more reliable.
Speed and Innovation
While both Resilio Connect and Syncthing offer the speed of peer-to-peer transfer, Resilio is faster because it:
- Scans and syncs file changes quicker
- Uses WAN acceleration technology to optimize transfer over WANs
In order to detect and sync file changes, Syncthing relies on notifications from the filesystem and performs periodic scans of the file directories. For larger deployments (i.e., larger file sizes, lots of files, and/or replication to many endpoints), this method of scanning and syncing files can take a long time.
But Resilio detects file changes using notification events from the host OS and optimized checksum calculations. A checksum is an identification marker assigned to each file. When the file changes, so does the checksum. Resilio uses checksums to quickly identify changed files and, in the event that a network or device goes down in the middle of a transfer, resume a file transfer where it left off.
While Syncthing can be installed on both local and remote devices, it was designed primarily for transfer over local networks. Resilio also provides faster transfer over WANs by using a proprietary WAN acceleration transfer protocol known as Zero Gravity Transport™. ZGT™ minimizes packet loss and maximizes transfer speed by:
- Periodically sending packets with a fixed packet delay to create a consistent packet distribution over time
- Using a congestion control algorithm that regularly probes the RTT in order to calculate and maintain an ideal send rate
- Retransmitting lost packets once per RTT
- Using interval acknowledgements for a group of packets that includes additional information about lost packets
Further reading: Learn more about how Resilio optimizes WAN transfer in our WAN optimization whitepaper.
Resilio is also committed to innovation, and our dedicated engineering team is constantly improving Connect in order to provide better file replication. For example, Resilio Connect has been optimized to perform file synchronization more efficiently than competing solutions.
In order to sync files at scale, files must be quickly indexed, merged, and synchronized. Syncthing does so inefficiently, and utilizes a lot of CPU and memory when indexing and syncing files. This can lead to higher costs and more energy consumption (quickly draining batteries on mobile devices that are using Syncthing).
Resilio engineers, however, were able to reduce the average memory footprint requirements by 80% on all replication jobs, significantly reducing the physical memory needed per agent. We’ve also optimized Resilio’s startup time, merging, indexing, storage io, CPU usage, and more, enabling Resilio to sync millions of files in any direction (one-to-one, one-to-many, many-to-one, or N-way) in real time.
Case Study: “We now map directly to the NAS box main folder and when someone works in one office on a file with all the link files in the paths, they are exactly the same when in the other offices if someone opens it there.”
Scalability and Reliability
The larger your replication needs become (i.e., transferring large files, transferring large numbers of files, transferring to many endpoints), the more Resilio becomes a superior file sync solution to Syncthing.
Syncthing isn’t optimized for WAN transfer. So if you’re replicating too many endpoints over long distances and unreliable networks with varying degrees of packet loss, you’ll experience more breakdowns and delays. But Resilio’s WAN acceleration protocol (ZGT™) not only optimizes transfer over WANs, it also enables you to acquire, ingest, and sync files from the far edge of the network to a centralized location.
Resilio easily scales from a few servers to many thousands of servers. It supports files of any size and has successfully replicated 250 million files in a single job (this is only what was tested, and Resilio can potentially replicate even more). And Resilio is optimized to balance the network load between all devices in your replication environment and dynamically route around outages with connection loss.
In other words, the larger your replication environment and replication needs, the better Resilio performs — making it the ideal solution for enterprise organizations and large deployments.
Check out our transfer speed calculator to see how much time Resilio can save you.
End-to-end security
Resilio offers top-of-the-line data security features that were reviewed by 3rd-party security experts. These include:
- Forward secrecy: Resilio uses one-time session encryption keys.
- Data encryption: Resilio uses AES 256 to encrypt data at rest and in transit (Syncthing uses TLS).
- Mutual authentication: You must use an authentication key on each folder you want to share, which ensures data is only delivered to designated endpoints.
Switch to Resilio Connect for Fast, Reliable Sync
If you’re tired of dealing with Syncthing issues and out of sync folders, then switch to Resilio Connect for more reliable synchronization. Resilio Connect is an enterprise-proven file synchronization solution that’s particularly well-suited for large deployments because it’s:
- Fast: Resilio can transfer files at 10 Gbps+ per server.
- Efficient: Resilio’s efficient, real-time architecture enables it to achieve sub-5-second latency.
- WAN optimized: Resilio’s WAN acceleration technology enables it to provide superior transfer over WANs and even sync files from edge to core.
- Organically scalable: As your replication environment grows, Resilio becomes faster and more reliable. It can quickly replicate 250+ million files per job.
- Reliable: Resilio can dynamically route around outages and resume interrupted file transfers where they left off, persisting until file transfer is complete.
- Easy to use: Resilio’s Management Console enables you to easily gain insight into and manage how replication occurs in your environment.
- Secure: Resilio provides end-to-end encryption to ensure your files are secure at rest and in transit.
To see if Resilio Connect is right for you, schedule a demo.