Syncing problem: 'invalid path separator'

I see the following in my log. Does that output mark a regrettable limitation of syncthing? Should I file a bug report, or feature request, or neither?

[GXDEV] 05:07:05 WARNING: Dropping index entry for rclone-browser/Releases · kapitainsky\RcloneBrowser.desktop, contains invalid path separator
[GXDEV] 05:07:05 WARNING: Dropping index entry for ThinkPad/X1/xx_old, misc/Intel® Core™ i7-8550U Processor 122589 - https:\\www.intel.com.desktop, contains invalid path separator
[GXDEV] 05:07:05 WARNING: Dropping index entry for Security/Prey/Find your device: Download Prey Anti-Theft protection for free - https:\\www.preyproject.com.desktop, contains invalid path separator
[GXDEV] 05:07:05 INFO: Puller (folder "PC and laptops" (vstcr-3tugu), item "On PCs\\CW\\aa_General\\Mac malware\\Your O2 bill is ready – fake PDF malware | My Online Security.desktop"): filename is invalid
[GXDEV] 05:07:05 INFO: Puller (folder "PC and laptops" (vstcr-3tugu), item "TRIP"): no connected device has the required version of this file
[GXDEV] 05:07:05 WARNING: Dropping index entry for Editors/Sublime/Tweaks and addOns/yrammos\SublimeLog: A bare-bones console logger for Sublime Text 2 and 3. - https:\\github.com.desktop, contains invalid path separator
[GXDEV] 05:07:05 WARNING: Dropping index entry for Editors/Sublime/Tweaks and addOns/Reverting to a Freshly Installed State – Sublime Text 3 Documentation - https:\\www.sublimetext.com.desktop, contains invalid path separator
[GXDEV] 05:07:05 INFO: Puller (folder "PC and laptops" (vstcr-3tugu), item "On PCs\\CW\\aa_General\\Mac malware\\Your O2 bill is ready – fake PDF malware | My Online Security.desktop"): filename is invalid

PS: The way this forum does not tell you that, in order to see the preview of your post, you must close the information/FAQ/nag pane - that’s quite irritating.

Syncthing Version: v1.3.2, Windows (64 bit) “Fermium Flea” OS Version: Windows 10 (but I think the same applies to Linux - on which I use syncthing too)

I’m guessing you have files on the Linux side with actual backslashes in the filename. These are not possible to represent on the Windows side of things. You can consider it a regrettable limitation somewhere. Rename the files to not have backslashes in them.

That said, the error message should probably be the usual “invalid character in file name” and not the invalid separator thing, so there is a bug also. The effect for you is the same though.

Thanks. One file system being able to handle names that another cannot is a problem for Sycnthing. Perhaps the root of my particular problem though is Firefox. For, Firefox names saved webpages after their full path; that’s how the slashes are getting into the filenames. Still, the forward-slash is not the only characters that syncthing is complaining of here; dashes seem to be getting rejected too . .

It appears to be also rejecting pipes, not dashes.

1 Like

I don’t even like the following idea, because it’s feature creep, but it might spark some discussion.

In theory we could have a check that happens every now and again that tries to notify the user about some of these potential cross platform issues if files are found on the local device that might cause issues for other devices.

1 Like

Surely extra features as such are not bad, especially if they serve the basic functionality - of syncing files.

I think that a check of that type would be good, especially if it offered, as a remedy, to rename the file (rename the file is an minimal a way as would suffice, e.g. by replacing the pipe symbol with a dash - presuming dashes are OK).

There are plenty of guides on the internet how to rename files to make them usable on other filesystems.

We don’t know what the user wants, and renaming a file is potentially a destructive action (what if its a file part of some special database, which if missing/renamed will cause an application to behave badly, etc…)

The user is warned, what he wants to do about that is up to him.

I don’t disagree that we should have a way to help out (same like we do NFD vs NFC encoding), but that definately should not be the default behaviour.

Anyways, there is already a years old ticket for that on github, but nobody cares enough about it do something about it. As the user can always fix this, and user fixing this is usually the right thing to do anyway, as then they are atleast aware.

I think that the average user of Syncthing wants to be able to put a file in a sync folder - a file with any name - that his/her current device allows, and not to have to worry about it. It seems we can’t have that with Syncthing. But it seems to me that the next best thing would be to warn the user if the filename is problematic and to offer - offer, not automatically implement - a rename.

At the very least, it would be good were Syncthing to report which character(s) in the filename are a problem. If so doing is too difficult, then perhaps some text could be provided (or linked to) that says what characters are problematic on which OSs.

For what it is worth: most of the problems I have seem to owe to the following combinations of circumstances. When Firefox saves links on Linux, sometimes the resulting filename has a forward slash and/or a pipe symbol in it; and Windows rejects those characters in filenames. Note that in this case a minor rename - changing the slash or pipe to a dash or space - would have no ill effect at all, so far as I can see.

This is not a Syncthing problem. It’s a fundamental OS incompatibility problem. Papering “invisibly” over those is generally not a good idea. Even things as simple as LF vs. CRLF tend not to actually work invisibly.