New folder says up-to-date but folder is empty on receiving device

I have used syncthing before with minimal issue but this is the first time I’ve had one I can’t solve. I added a new folder on my windows laptop and accepted it on my steam deck. The folders synced and says ‘Up to Date’ with the correct folder size but the folders on the steam deck are empty.

I have tried restarting syncthing and my devices, deleting and recreating the folder, and --reset-deltas. Nothing has worked. Below are screenshots from both my laptop and steam deck. Please help

Screenshot 2024-12-04 151135

If Syncthing says the files are there, then they likely are :wink:. These kind of issues are usually caused by a lack of permissions, i.e. you simply have no rights to even read the files. While someone knowledgeable in Linux and SteamDeck specifically may be able to help you here, I would suggest to maybe ask for support on SteamDeck forums as well.

1 Like

That makes sense so I tried granting permission to the folder in AppData from this guide and it is still the same issue.

I then tried moving the folder I need to sync to a different directory in my Documents folder. Still the same issue of it saying it’s synced on both sides but the folders are still empty.

Really at a loss here

“Zephyrus”, which based on the folder path in your screenshot, is your Windows laptop. The local state says Syncthing found 3,109 folders and 14,590 files to sync, so there’s no permissions issue with at least listing the contents of the source folder.

When you say “folders are still empty”, I’m assuming that you mean that target path that begins with /home/deck/.var/app/at.vintagestory.VintageStory?

Based on the path /home/deck/.var/app/, and the fact that it’s a Steam Deck, I’m assuming that you installed the Vintage Story game via Flatpak?

Did you use the same method for Syncthing?

If you did, it’s important to keep in mind that Flatpak and other packaging systems like it (e.g. Snap) isolate apps in security sandboxes – i.e. an app installed via Flatpak by default cannot access the files inside another Flatpak app.

So Syncthing won’t be able to sync any files to/from Vintage Story unless you override the default security settings: https://docs.flatpak.org/en/latest/sandbox-permissions.html

3 Likes

Yes both Syncthingy and Vintage Story are Flatpaks. I tried changing the permissions on the deck using FlatSeal

Screenshot_20241205_122927

and I got a conflict on the Last Scan. Deleted the folders, restarted both devices and added the folders again. No conflict this time, it says files were updated but the folder on Steam Deck is still empty. Am I missing something?

The first four slider settings are way overkill – there’s no need to open access to all system files and /home:

FlatSeal

None of the sliders above will help with your Syncthing issue because as Flatpaks, both Syncthingy and Vintage Story are effectively islands. They aren’t included in “All user files” which are ~/Documents, ~/Music ~/Pictures, etc.

However, you did successfully grant Vintage Story access to ~/Pictures:

Other

So just do something similar for Syncthing, granting it access to Vintage Story’s folder(s) and file(s).

I think this permission was already in flatseal but I tried adding the directory there and it didn’t work. Screenshot_20241207_152112

Also tried manually overriding using sudo in Konsole following this and it is still the same issue. The folders are still empty with this notice popping up in Syncthing on the deck:

There’s nothing wrong with trying and using different methods that end up with the same result, but it’s often best to stick with a single approach until after getting more comfortable with it.

Since it’s easier and faster to show how to use the stock flatpak command than to describe using a GUI app such as Flatseal, I’m sticking with the command-line.

So…

First, the key thing to always keep in mind is what was discussed earlier – a Flatpak app is run inside a security sandbox.

Using an example from the forum post you linked to above, it means that the following two commands aren’t equivalent:

flatpak override ApplicationIDHere --filesystem=host
sudo flatpak override ApplicationIDHere --filesystem=host

By default, Flatpak assumes it’s acting on a system-wide installation, so the two commands above are equivalent to this:

flatpak override ApplicationIDHere --filesystem=host --system
sudo flatpak override ApplicationIDHere --filesystem=host --system

Of course, running as a normal user, flatpak override --system would fail due to insufficient permissions, so the reason for prepending sudo (aka. short for “super-user do”).

However, your Flatpak apps are stored under /home/deck/.var/app/ – a user-level install and not a system-wide install – so you have to explicitly tell flatpak that’s what you want.

First, find the Flatpak application ID for SyncThingy by listing your currently installed apps:

flatpak list

Now if on your Steam Deck the application ID for SyncThingy is “com.github.zocker_160.SyncThingy” (it probably is, but much better to be sure), a few commonly used actions:

List current override settings:

flatpak override --user --show com.github.zocker_160.SyncThingy

Reset to default override settings:

flatpak override --user --reset com.github.zocker_160.SyncThingy

Allow an app read/write access to /home/user/Sync:

flatpak override --user --filesystem="/home/user/Sync" com.github.zocker_160.SyncThingy

Allow an app read-only access to /home/user/Sync:

flatpak override --user --filesystem="/home/user/Sync":ro com.github.zocker_160.SyncThingy

The quotes around the filesystem path aren’t required, but a good habit nonetheless in case there are spaces and/or special characters.

(I have nothing against Flatseal and think it’s a convenient tool, but I also think it’s well worth first learning how to use the flatpak command because it helps build a good foundation for understanding exactly what Flatseal is doing behind the scenes.)

Believe it or not, that error above is actually a good sign… :wink:

It means that Syncthing has no problems accessing the filesystem path labeled “VintagestoryData”.

Syncthing sees existing files there so it’s erring on the safe side to avoid potential data loss – e.g. your Windows laptop overwriting everything in the Syncthing folder on your Steam Deck.

Safest thing to do is to remove “VintagestoryData” in Syncthing and add it back again. Syncthing will automatically recreate its .stfolder marker folder. Syncthing on your Steam Deck will flag any conflicts.

For reference, from the official Syncthing FAQ: I am seeing the error message “folder marker missing”. What do I do?

3 Likes

Okay I used Konsole to verify the current override settings (allow an app read/write access is now granted).

I deleted the folder from syncthing and readded. It is showing on the steam deck that it is synced and is up to date with no errors, but the folder is still empty.

As a side note, I just want to thank you for your continued patience and time dedicated to teaching me how this works, I truly appreciate it :slightly_smiling_face:

If the list of overrides is still the same as shown in the screenshot above, there’s way too much privilege granted to Syncthing.

Here’s what I’d do:

flatpak override --user --reset com.github.zocker_160.SyncThingy
flatpak override --user --reset at.vintagestory.VintageStory
flatpak override --user --filesystem="/home/deck/.var/app/at.vintagestory.VintageStory" com.github.zocker_160.SyncThingy

The first two commands start with a clean slate.

The last command grants SyncThingy+Syncthing access to Vintage Story’s entire app directory.

You could also narrow it to /home/deck/.var/app/at.vintagestory.VintageStory/config/VintagestoryData, but you might want to sync other subdirectories later on, so this just opens it up a bit more to keep it simpler.

Not surprising at all given the override settings shown in the screenshot above.

You’re welcome. :smile:

Ah okay I wasn’t understanding the last line to grant access between syncthing and vintagestory.

Okay I reset the permissions and granted access to the vintagestory directory. Deleted the folder in syncthing then readded it again and…the folders are still empty on the steam deck. Is there something else that I forgot to do?

On both your devices, via Syncthings UI under Actions → Logs, check the runtime log for any clues such as error messages.

It appears that it might still be a permissions issue?

Steam Deck:

PC:

Maybe, but not entirely…

First, note that in order for a particular folder to sync between two or more devices, the Syncthing folder ID must match.

In the screenshot above, Syncthing on the Steam Deck received info about a Syncthing folder labeled “VintagestoryData” with a Syncthing folder ID “benaa-tjk5i” – problem is that the Steam Deck has no such Syncthing folder configured.

The screenshots included in your original post showed the folder ID as “catnx-kwfu6”, so somewhere along the way it changed and now both ends don’t match.

The “Failed initial scan” seems to point to a permissions problem on your PC (“Zephyrus”?), but ignore it for now and fix the mismatched folder ID first otherwise you won’t get anywhere even with the correct permissions.

This is because I deleted and recreated the folders on both my PC and the steam deck. I checked and rescanned, and they are matching.

PC: Screenshot 2024-12-12 111036_pc

Steam Deck: Screenshot_20241212_111108_sd

I thought maybe the folder on my PC being in AppData caused a permissions issue, but I was able to successfully sync another folder within the AppData folder.

Install syncthing in truenas, if the datasets were created before installing syncthing there is no problem when using them but if I create a dataset with syncthing already installed and I want to use it, it appears synchronized and with information inside but it does not show me anything inside when I access it, it started to happen to me with the latest version to install in truenas

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