here is another test.
src=windows ntfs filesystem on internal ssd.
dst=external usb drive formatted as ntfs. that is connected to a synology device. accssed over tailscale
rclone copy d:\zork bnas_sftp_ts:usbshare1-2/zork -vv --inplace --retries=1
DEBUG : rclone: Version "v1.71.2" starting with parameters ["d:\\data\\rclone\\rclone.exe" "copy" "d:\\zork" "bnas_sftp_ts:usbshare1-2/zork" "-vv" "--inplace" "--retries=1"]
DEBUG : Creating backend with remote "d:\\zork"
DEBUG : Using config file from "d:\\data\\rclone\\rclone.conf"
DEBUG : fs cache: renaming cache item "d:\\zork" to be canonical "//?/d:/zork"
DEBUG : Creating backend with remote "bnas_sftp_ts:usbshare1-2/zork"
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: New connection 100.109.123.23:22465->100.115.37.34:22 to "SSH-2.0-OpenSSH_8.2"
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: Shell type "unix" from config
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: Relative path resolved to "/usbshare1-2/zork"
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: Using root directory "/usbshare1-2/zork"
DEBUG : file/.ext: Need to transfer - File not found at Destination
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: Waiting for checks to finish
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: Waiting for transfers to finish
INFO : file/.ext: Copied (new)
rclone ls d:\zork
0 file/.ext
rclone ls bnas_sftp_ts:usbshare1-2/zork
0 file/.ext
rclone copy d:\zork bnas_sftp_ts:usbshare1-2/zork -vv --inplace --retries=1
DEBUG : rclone: Version "v1.71.2" starting with parameters ["d:\\data\\rclone\\rclone.exe" "copy" "d:\\zork" "bnas_sftp_ts:usbshare1-2/zork" "-vv" "--inplace" "--retries=1"]
DEBUG : Creating backend with remote "d:\\zork"
DEBUG : Using config file from "d:\\data\\rclone\\rclone.conf"
DEBUG : fs cache: renaming cache item "d:\\zork" to be canonical "//?/d:/zork"
DEBUG : Creating backend with remote "bnas_sftp_ts:usbshare1-2/zork"
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: New connection 100.109.123.23:4698->100.115.37.34:22 to "SSH-2.0-OpenSSH_8.2"
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: Shell type "unix" from config
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: Relative path resolved to "/usbshare1-2/zork"
DEBUG : sftp://user99@bnas_ts:22/usbshare1-2/zork: Using root directory "/usbshare1-2/zork"
DEBUG : file:.ext: Need to transfer - File not found at Destination
DEBUG : file/.ext: Need to transfer - File not found at Destination
INFO : file/.ext: Copied (new)
INFO : file:.ext: Copied (new)
rclone tree d:\zork
/
├── file/.ext
└── file:.ext
rclone tree bnas_sftp_ts:usbshare1-2/zork
/
├── file/.ext
└── file:.ext
I suppose on my machine, the filenames shown by rclone ls are the same ones that are being synced, while on your machine the ls output is also weird, but the sync is somehow handled correctly. I will create a new suspected bug thread.
I found the solution in the linked thread: I had to add --local-encoding Slash, or preferably set the environment variable RCLONE_LOCAL_ENCODING=Slash.
Doing that fixed both the escaping issue and failed transfer issue.