Server side move/copy between crypt remotes on OneDrive requires --onedrive-server-side-across-configs

What is the problem you are having with rclone?

In order to move/copy across two server-side crypt remotes on the same OneDrive remote, I need to set --crypt-server-side-across-configs on both the remotes, as well as pass --onedrive-server-side-across-configs to the move/copy command.

I debugged it (with a move), and in rclone/operations.go at 5d6b8141ec5cc4f56f2adf101024d583e17ac1a5 · rclone/rclone · GitHub, fdst.Features().Move didn't exist (no server-side move support without the --onedrive-server-side-across-configs AIUI)

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

rclone v1.60.0
- os/version: darwin 12.5.1 (64 bit)
- os/kernel: 21.6.0 (arm64)
- os/type: darwin
- os/arch: arm64
- go/version: go1.19.2
- go/linking: dynamic
- go/tags: none

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

OneDrive

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

rclone copy --log-file=log -vv CryptA: CryptB:

The rclone config contents with secrets removed.

[OneDrive]
type = onedrive
region = global
token = <token json>
drive_id = <id>
drive_type = personal

[CryptA]
type = crypt
remote = OneDrive:CryptA
password = <password>
server_side_across_configs = true

[CryptB]
type = crypt
remote = OneDrive:CryptB
password = <same password>
server_side_across_configs = true

A log from the command with the -vv flag

Log without --onedrive-server-side-across-configs:

2022/11/13 09:01:54 DEBUG : rclone: Version "v1.60.0" starting with parameters ["rclone" "copy" "--log-file=log" "-vv" "CryptA:" "CryptB:"]
2022/11/13 09:01:54 DEBUG : Creating backend with remote "CryptA:"
2022/11/13 09:01:54 DEBUG : Using config file from "/Users/<user>/.config/rclone/rclone.conf"
2022/11/13 09:01:54 DEBUG : Creating backend with remote "OneDrive:CryptA"
2022/11/13 09:01:55 DEBUG : Creating backend with remote "CryptB:"
2022/11/13 09:01:55 DEBUG : Creating backend with remote "OneDrive:CryptB"
2022/11/13 09:01:57 DEBUG : Encrypted drive 'CryptB:': Waiting for checks to finish
2022/11/13 09:01:57 DEBUG : Encrypted drive 'CryptB:': Waiting for transfers to finish
2022/11/13 09:01:58 DEBUG : 2qiggd6jfma65bhoh7kra6m4q0: Starting multipart upload
2022/11/13 09:01:59 DEBUG : 2qiggd6jfma65bhoh7kra6m4q0: Uploading segment 0/60 size 60
2022/11/13 09:01:59 DEBUG : test: sha1 = 8843c465a4b013cf80f6303e75487db28f11668c OK
2022/11/13 09:01:59 INFO  : test: Copied (new)
2022/11/13 09:01:59 INFO  : 
Transferred:   	         60 B / 60 B, 100%, 30 B/s, ETA 0s
Transferred:            1 / 1, 100%
Elapsed time:         4.9s

2022/11/13 09:01:59 DEBUG : 10 go routines active

Log with --onedrive-server-side-across-configs:

2022/11/13 09:04:45 DEBUG : rclone: Version "v1.60.0" starting with parameters ["rclone" "copy" "--onedrive-server-side-across-configs" "--log-file=log" "-vv" "CryptA:" "CryptB:"]
2022/11/13 09:04:45 DEBUG : Creating backend with remote "CryptA:"
2022/11/13 09:04:45 DEBUG : Using config file from "/Users/<user>/.config/rclone/rclone.conf"
2022/11/13 09:04:45 DEBUG : Creating backend with remote "OneDrive:CryptA"
2022/11/13 09:04:45 DEBUG : OneDrive: detected overridden config - adding "{Db_Y9}" suffix to name
2022/11/13 09:04:46 DEBUG : fs cache: renaming cache item "OneDrive:CryptA" to be canonical "OneDrive{Db_Y9}:CryptA"
2022/11/13 09:04:46 DEBUG : Creating backend with remote "CryptB:"
2022/11/13 09:04:46 DEBUG : Creating backend with remote "OneDrive:CryptB"
2022/11/13 09:04:46 DEBUG : OneDrive: detected overridden config - adding "{Db_Y9}" suffix to name
2022/11/13 09:04:47 DEBUG : fs cache: renaming cache item "OneDrive:CryptB" to be canonical "OneDrive{Db_Y9}:CryptB"
2022/11/13 09:04:48 DEBUG : Encrypted drive 'CryptB:': Waiting for checks to finish
2022/11/13 09:04:48 DEBUG : Encrypted drive 'CryptB:': Waiting for transfers to finish
2022/11/13 09:04:50 INFO  : test: Copied (server-side copy)
2022/11/13 09:04:50 INFO  : 
Transferred:   	         12 B / 12 B, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         5.0s

2022/11/13 09:04:50 DEBUG : 8 go routines active

hello and welcome to the forum,

sorry if i misunderstand your issue but

if you want server side between two crypts, using same password, on onedrive, can use --server-side-across-configs
https://forum.rclone.org/t/convert-filename-encoding/34008/7

fdst.Features().ServerSideAcrossConfigs || ci.ServerSideAcrossConfigs

As I said, that works (with --onedrive-server-side-across-configs instead of --server-side-across-configs), but the documentation for --crypt-server-side-across-configs doesn't say that a global --server-side-across-configs is required as well.

agreed, the docs need a tweak and that has been mentioned in the forum before.
that --crypt-server-side-across-configs requires --server-side-across-configs

just pointing out, in my testing, that none of these are required.
and perhaps the docs should point that out.
--crypt-server-side-across-configs
--onedrive-server-side-across-configs
server_side_across_configs = true

none of these are required

What do you mean?

just pointing out that can be done with a single flag --server-side-across-configs