Syncing two "raw" remotes without common Checksum Hashes

What is the problem you are having with rclone?

I’m getting this notice:

START sync koofr:RCE -> hidrive:users/xxxx/RCE
NOTICE: HiDrive root 'users/xxxx/RCE': --checksum is in use but the source and destination have no hashes in common; falling back to --size-only

Now I do understand that there are NO COMMON hashes between koofr and hidrive. Fine.

But I’m running this on a VPS with two “remote” remotes, not a local one.

So my question is: Why wouldn’t it be possible to check checksums during the transfer on the VPS side? Since the data has to pass through the VPS anyway (download from Koofr → upload to HiDrive), rclone could theoretically calculate a hash locally after downloading from the source to make an integrity check with the source; and then calculate the second “target” hash and check it after the upload to the destination, as a secondary integrity check!?

Run the command 'rclone version' and share the full output of the command.

rclone v1.73.2
os/version: debian 13.3 (64 bit)
os/kernel: 6.12.73+deb13-amd64 (x86_64)
os/type: linux
os/arch: amd64
go/version: go1.25.8
go/linking: static
go/tags: none

Which cloud storage system are you using? (eg Google Drive)

Running the following rclone command on a VPS, backends being Koofr and Hidrive, both raw without crypt layer.

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone sync koofr:RCE hidrive:users/xxxx/RCE --fast-list --create-empty-src-diulti-thread-streams 4 --multi-thread-cutoff 64M --retries 3 --low-level-retries 10 --checksum --stats 5s --progress

Please run 'rclone config redacted' and share the full output. If you get command not found, please make sure to update rclone.

[hidrive]
type = hidrive
token = XXX

[koofr]
type = koofr
provider = koofr
user = XXX
password = XXX

welcome to the forum,

rclone should be doing that. hard to know what is going on, as no debug log was posted?

as a test, rclone copy just one single file, smaller the better. without using --checksum
post the full debug log.


can remove that, does nothing in your case.

Okay sorry, was not expecting the DEBUG log to be helpful because I don’t have a very “specific” but rather generic usecase here. At least I thought so :smiley:

Fine, here you go, I “copied” one small file, this is the DEBUG log:

root@mp80debian:~/rclone# rclone copy koofr:RCE/8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg hidrive:users/xxxx/RCE --progress --checksum -vv
2026/03/11 09:01:01 DEBUG : Setting --config "/root/rclone/rclone.conf" from environment variable RCLONE_CONFIG="/root/rclone/rclone.conf"
2026/03/11 09:01:01 DEBUG : rclone: Version "v1.73.2" starting with parameters ["rclone" "copy" "koofr:RCE/8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg" "hidrive:users/xxxx/RCE" "--progress" "--checksum" "-vv"]
2026/03/11 09:01:01 DEBUG : Creating backend with remote "koofr:RCE/8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg"
2026/03/11 09:01:01 DEBUG : Using config file from "/root/rclone/rclone.conf"
2026/03/11 09:01:01 DEBUG : fs cache: renaming child cache item "koofr:RCE/8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg" to be canonical for parent "koofr:RCE"
2026/03/11 09:01:01 DEBUG : Creating backend with remote "hidrive:users/xxxx/RCE"
2026/03/11 09:01:02 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: Need to transfer - File not found at Destination
2026/03/11 09:01:02 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: size = 124258 OK
2026/03/11 09:01:02 INFO  : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: Copied (new)
Transferred:      121.346 KiB / 121.346 KiB, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.7s
2026/03/11 09:01:02 INFO  :
Transferred:      121.346 KiB / 121.346 KiB, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.7s

2026/03/11 09:01:02 DEBUG : 7 go routines active



after that, I deleted the file again from the destination and used copy without “–checksum”:

root@mp80debian:~/rclone# rclone copy koofr:RCE/8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg hidrive:users/xxxx/RCE --progress -vv
2026/03/11 09:02:49 DEBUG : Setting --config "/root/rclone/rclone.conf" from environment variable RCLONE_CONFIG="/root/rclone/rclone.conf"
2026/03/11 09:02:49 DEBUG : rclone: Version "v1.73.2" starting with parameters ["rclone" "copy" "koofr:RCE/8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg" "hidrive:users/xxxx/RCE" "--progress" "-vv"]
2026/03/11 09:02:49 DEBUG : Creating backend with remote "koofr:RCE/8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg"
2026/03/11 09:02:49 DEBUG : Using config file from "/root/rclone/rclone.conf"
2026/03/11 09:02:49 DEBUG : fs cache: renaming child cache item "koofr:RCE/8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg" to be canonical for parent "koofr:RCE"
2026/03/11 09:02:49 DEBUG : Creating backend with remote "hidrive:users/xxxx/RCE"
2026/03/11 09:02:49 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: Need to transfer - File not found at Destination
2026/03/11 09:02:50 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: size = 124258 OK
2026/03/11 09:02:50 INFO  : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: Copied (new)
Transferred:      121.346 KiB / 121.346 KiB, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.5s
2026/03/11 09:02:50 INFO  :
Transferred:      121.346 KiB / 121.346 KiB, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.5s

Actually I don’t see anything related to checking the checksums (after download and after upload) in either case which I was actually expecting. I just can see this one:

2026/03/11 09:01:02 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: size = 124258 OK

And even when “syncing” a folder again with –checksum, it gives me the same message as originally posted in the beginning again:

root@mp80debian:~/rclone# rclone copy koofr:RCE hidrive:users/xxxx/RCE --progress --checksum -vv
2026/03/11 09:06:17 DEBUG : Setting --config "/root/rclone/rclone.conf" from environment variable RCLONE_CONFIG="/root/rclone/rclone.conf"
2026/03/11 09:06:17 DEBUG : rclone: Version "v1.73.2" starting with parameters ["rclone" "copy" "koofr:RCE" "hidrive:users/xxxx/RCE" "--progress" "--checksum" "-vv"]
2026/03/11 09:06:17 DEBUG : Creating backend with remote "koofr:RCE"
2026/03/11 09:06:17 DEBUG : Using config file from "/root/rclone/rclone.conf"
2026/03/11 09:06:17 DEBUG : Creating backend with remote "hidrive:users/xxxx/RCE"
2026/03/11 09:06:17 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg
2026/03/11 09:06:17 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name dllbsdut9vuqg7ji0919v0uqo8
2026/03/11 09:06:17 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name sdaqdnem9ge7n3gnfbjqlr33h4
2026/03/11 09:06:17 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: size = 124258 OK
2026/03/11 09:06:17 NOTICE: HiDrive root 'users/xxxx/RCE': --checksum is in use but the source and destination have no hashes in common; falling back to --size-only
2026/03/11 09:06:17 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: Size of src and dst objects identical
2026/03/11 09:06:17 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: Unchanged skipping
2026/03/11 09:06:18 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name dllbsdut9vuqg7ji0919v0uqo8
2026/03/11 09:06:18 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name ahf3qf77tls2uj537179l1stes
2026/03/11 09:06:18 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name d656hshqj9kajuhlp5j2m65fm0
2026/03/11 09:06:18 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name o53r5ddg6llqb0377dkna9006g

A full directory copy (excerpt of the Log) without –checksum:

root@mp80debian:~/rclone# rclone copy koofr:RCE hidrive:users/xxxx/RCE --progress -vv
2026/03/11 09:04:39 DEBUG : Setting --config "/root/rclone/rclone.conf" from environment variable RCLONE_CONFIG="/root/rclone/rclone.conf"
2026/03/11 09:04:39 DEBUG : rclone: Version "v1.73.2" starting with parameters ["rclone" "copy" "koofr:RCE" "hidrive:users/xxxx/RCE" "--progress" "-vv"]
2026/03/11 09:04:39 DEBUG : Creating backend with remote "koofr:RCE"
2026/03/11 09:04:39 DEBUG : Using config file from "/root/rclone/rclone.conf"
2026/03/11 09:04:39 DEBUG : Creating backend with remote "hidrive:users/xxxx/RCE"
2026/03/11 09:04:39 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg
2026/03/11 09:04:39 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name dllbsdut9vuqg7ji0919v0uqo8
2026/03/11 09:04:39 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name sdaqdnem9ge7n3gnfbjqlr33h4
2026/03/11 09:04:39 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: size = 124258 OK
2026/03/11 09:04:39 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: Size and modification time the same (differ by -258ms, within tolerance 1s)
2026/03/11 09:04:39 DEBUG : 8hojluijqfoobbqcglrvkc5gss4o10f0bflktov8rdsg285slsdg: Unchanged skipping
2026/03/11 09:04:39 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name dllbsdut9vuqg7ji0919v0uqo8
2026/03/11 09:04:40 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name ahf3qf77tls2uj537179l1stes
2026/03/11 09:04:40 DEBUG : HiDrive root 'users/xxxx/RCE': found directory-element with name d656hshqj9kajuhlp5j2m65fm0

So it seems my original “idea” is not the way it goes… my “intermediate” VPS doesn’t do neither a local hash integrity check after downloading from SRC, nor a integrity check from the local temp file with the target after upload…

let's see if rclone does checksums for hidrive.

copy one small file from local to hidrive, post the full debug log.

Interesting, yes it does. With or without “–checksum”, it doesn’t matter (I deleted the file from HiDrive between both operations, jfyi).

Line “2026/03/12 08:03:20 DEBUG : IMG_4587.jpg: hidrive = 228805bbda7c4943262b61f908633cd036151220 OK”

What can we conclude from that?

C:\Users\xxxx\Desktop>rclone copy C:\Users\xxxx\Desktop\IMG_4587.jpg hidrive:users/xxxx/ -vv
2026/03/12 08:03:19 DEBUG : Setting --config "D:\\MyFiles\\Backups\\Rclone\\conf\\rclone.conf" from environment variable RCLONE_CONFIG="D:\\MyFiles\\Backups\\Rclone\\conf\\rclone.conf"
2026/03/12 08:03:19 DEBUG : rclone: Version "v1.73.2" starting with parameters ["rclone" "copy" "C:\\Users\\xxxx\\Desktop\\IMG_4587.jpg" "hidrive:users/xxxx/" "-vv"]
2026/03/12 08:03:19 DEBUG : Creating backend with remote "C:\\Users\\xxxx\\Desktop\\IMG_4587.jpg"
2026/03/12 08:03:19 DEBUG : Using config file from "D:\\MyFiles\\Backups\\Rclone\\conf\\rclone.conf"
2026/03/12 08:03:19 DEBUG : fs cache: renaming child cache item "C:\\Users\\xxxx\\Desktop\\IMG_4587.jpg" to be canonical for parent "//?/C:/Users/xxxx/Desktop"
2026/03/12 08:03:19 DEBUG : Creating backend with remote "hidrive:users/xxxx/"
2026/03/12 08:03:19 DEBUG : fs cache: renaming cache item "hidrive:users/xxxx/" to be canonical "hidrive:users/xxxx"
2026/03/12 08:03:19 DEBUG : IMG_4587.jpg: Need to transfer - File not found at Destination
2026/03/12 08:03:20 DEBUG : IMG_4587.jpg: size = 213880 OK
2026/03/12 08:03:20 DEBUG : IMG_4587.jpg: hidrive = 228805bbda7c4943262b61f908633cd036151220 OK
2026/03/12 08:03:20 INFO  : IMG_4587.jpg: Copied (new)
2026/03/12 08:03:20 INFO  :
Transferred:      208.867 KiB / 208.867 KiB, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.4s

C:\Users\xxxx\Desktop>rclone copy C:\Users\xxxx\Desktop\IMG_4587.jpg hidrive:users/xxxx/ --checksum -vv
2026/03/12 08:04:05 DEBUG : Setting --config "D:\\MyFiles\\Backups\\Rclone\\conf\\rclone.conf" from environment variable RCLONE_CONFIG="D:\\MyFiles\\Backups\\Rclone\\conf\\rclone.conf"
2026/03/12 08:04:05 DEBUG : rclone: Version "v1.73.2" starting with parameters ["rclone" "copy" "C:\\Users\\xxxx\\Desktop\\IMG_4587.jpg" "hidrive:users/xxxx/" "--checksum" "-vv"]
2026/03/12 08:04:05 DEBUG : Creating backend with remote "C:\\Users\\xxxx\\Desktop\\IMG_4587.jpg"
2026/03/12 08:04:05 DEBUG : Using config file from "D:\\MyFiles\\Backups\\Rclone\\conf\\rclone.conf"
2026/03/12 08:04:05 DEBUG : fs cache: renaming child cache item "C:\\Users\\xxxx\\Desktop\\IMG_4587.jpg" to be canonical for parent "//?/C:/Users/xxxx/Desktop"
2026/03/12 08:04:05 DEBUG : Creating backend with remote "hidrive:users/xxxx/"
2026/03/12 08:04:05 DEBUG : fs cache: renaming cache item "hidrive:users/xxxx/" to be canonical "hidrive:users/xxxx"
2026/03/12 08:04:05 DEBUG : IMG_4587.jpg: Need to transfer - File not found at Destination
2026/03/12 08:04:05 DEBUG : IMG_4587.jpg: size = 213880 OK
2026/03/12 08:04:05 DEBUG : IMG_4587.jpg: hidrive = 228805bbda7c4943262b61f908633cd036151220 OK
2026/03/12 08:04:05 INFO  : IMG_4587.jpg: Copied (new)
2026/03/12 08:04:05 INFO  :
Transferred:      208.867 KiB / 208.867 KiB, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.4s

2026/03/12 08:04:05 DEBUG : 4 go routines active

This is most likely the check rclone does after transferring a file, to verify the integrity of the transfer. This is different from --checksum, which (when possible) compares hashes before transferring a file, to determine whether a transfer is actually needed.

For the latter, hasher is probably going to be your best bet here:

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