Rclone fails to rename files and folders with Input/output error in Proton Drive mounted directory

What is the problem you are having with rclone?

rclone fails when I try to rename a folder or a file.

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

rclone version
rclone v1.69.1

  • os/version: fedora 42 (64 bit)
  • os/kernel: 6.14.2-300.fc42.x86_64 (x86_64)
  • os/type: linux
  • os/arch: amd64
  • go/version: go1.24.0
  • go/linking: static
  • go/tags: none

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

Proton Drive

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

rclone mount protondrive: protondrive --vfs-cache-mode full -vv


touch doRenameA
mv doRenameA doRenameB
mv: cannot move 'doRenameA' to 'doRenameB': Input/output error

mkdir renameDirA 
mv renameDirA renameDirB
mv: cannot move 'renameDirA' to 'renameDirB': Input/output error

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

@fedora:~$ rclone config redacted
[protondrive]
type = protondrive
username = nicolashenschel@protonmail.com
password = XXX
2fa = XXX
description = Proton Drive
client_uid = XXX
client_access_token = XXX
client_refresh_token = XXX
client_salted_key_pass = XXX
### Double check the config for sensitive info before posting publicly

A log from the command that you were trying to run with the -vv flag


https://pastebin.com/raw/j3AYXcDu

Thanks!

It looks like some issue with Proton API:

2025/04/21 08:49:51.011948 ERROR RESTY 400 PUT https://mail.proton.me/api/drive/shares/XXX==/links/XXX==/move: This value should not be blank. (Code=2000, Status=400)
2025/04/21 08:49:51 ERROR : test1/doRenameA: Couldn't move: 400 PUT https://mail.proton.me/api/drive/shares/XXX==/links/XXX==/move: This value should not be blank. (Code=2000, Status=400)
2025/04/21 08:49:51 ERROR : test1/doRenameB: File.Rename error: 400 PUT https://mail.proton.me/api/drive/shares/XXX==/links/XXX==/move: This value should not be blank. (Code=2000, Status=400)
2025/04/21 08:49:51 ERROR : test1/doRenameA: Dir.Rename error: 400 PUT https://mail.proton.me/api/drive/shares/XXX==/links/XXX==/move: This value should not be blank. (Code=2000, Status=400)
2025/04/21 08:49:51 ERROR : IO error: 400 PUT https://mail.proton.me/api/drive/shares/XXX==/links/XXX==/move: This value should not be blank. (Code=2000, Status=400)

which means that nothing can be done.

Proton drive remote has been pretty much abandoned for a long time. It experiences serious software rot with more and more issues nobody is working on.

It was reverse engineering attempt to implement it but person doing it gave up.

Unless Proton company offers one day official API it is dead project.

You want it to work with tools like rclone then talk to Proton about enabling access for 3rd party tools.

Hi,

Does it make a difference that I can rename directly. i.e. without mounting, with the "rclone move" command:

nicolas@fedora:~$ rclone move protondrive/test1/test.txt protondrive:protondrive/test1/testA.txt -vv
2025/04/21 12:45:24 DEBUG : rclone: Version "v1.69.1" starting with parameters ["rclone" "move" "protondrive/test1/test.txt" "protondrive:protondrive/test1/testA.txt" "-vv"]
2025/04/21 12:45:24 DEBUG : Creating backend with remote "protondrive/test1/test.txt"
2025/04/21 12:45:24 DEBUG : Using config file from "/home/nicolas/.config/rclone/rclone.conf"
2025/04/21 12:45:24 DEBUG : fs cache: renaming child cache item "protondrive/test1/test.txt" to be canonical for parent "/home/nicolas/protondrive/test1"
2025/04/21 12:45:24 DEBUG : Creating backend with remote "protondrive:protondrive/test1/testA.txt"
2025/04/21 12:45:24 DEBUG : proton drive root link ID 'protondrive/test1/testA.txt': Has cached credentials
2025/04/21 12:45:25 DEBUG : proton drive root link ID 'protondrive/test1/testA.txt': Used cached credential to initialize the ProtonDrive API
2025/04/21 12:45:26 DEBUG : test.txt: Need to transfer - File not found at Destination
2025/04/21 12:45:28 DEBUG : test.txt: sha1 = ce478109e56701300b1325f952fde4a2d02faea3 OK
2025/04/21 12:45:28 INFO : test.txt: Copied (new)
2025/04/21 12:45:28 INFO : test.txt: Deleted
2025/04/21 12:45:28 INFO :
Transferred: 14 B / 14 B, 100%, 14 B/s, ETA 0s
Checks: 1 / 1, 100%
Deleted: 1 (files), 0 (dirs), 14 B (freed)
Renamed: 1
Transferred: 1 / 1, 100%
Elapsed time: 1.8s

2025/04/21 12:45:28 DEBUG : 7 go routines active

Will try writing Proton, guess one more request does matter :slight_smile:

Thanks,
Nicolas

1 Like