Skip to content

rclone copy doesn't work without no-check-bucket #719

@kevinclevenger

Description

@kevinclevenger

Describe the bug
'rclone copy' always results in BucketAlreadyExists unless --s3-no-check-bucket or no_check_bucket = true is used

To Reproduce

rclone.conf:
[rustfs]
type = s3
provider = Minio
access_key_id = <acckey>
secret_access_key = <seckey>
region = us-west-1
endpoint = http://192.168.101.92:9000

$ rclone lsd rustfs:
    -1 2025-10-23 14:18:34        -1 backup

$ rclone copy optparse.rb rustfs:backup/tech/ -vv
2025/10/24 15:20:13 DEBUG : rclone: Version "v1.71.2" starting with parameters ["rclone" "copy" "optparse.rb" "rustfs:backup/tech/" "-vv"]
2025/10/24 15:20:13 DEBUG : Creating backend with remote "optparse.rb"
2025/10/24 15:20:13 DEBUG : Using config file from "/home/anon/.config/rclone/rclone.conf"
2025/10/24 15:20:13 DEBUG : fs cache: renaming child cache item "optparse.rb" to be canonical for parent "/home/anon/documents/tech/ruby"
2025/10/24 15:20:13 DEBUG : Creating backend with remote "rustfs:backup/tech/"
2025/10/24 15:20:13 DEBUG : fs cache: renaming cache item "rustfs:backup/tech/" to be canonical "rustfs:backup/tech"
2025/10/24 15:20:13 DEBUG : optparse.rb: Need to transfer - File not found at Destination
2025/10/24 15:20:13 ERROR : optparse.rb: Failed to copy: failed to prepare upload: operation error S3: CreateBucket, https response errorStatusCode: 409, RequestID: , HostID: , BucketAlreadyExists:
2025/10/24 15:20:13 ERROR : Can't retry any of the errors - not attempting retries
2025/10/24 15:20:13 INFO  :
Transferred:   	         0 B / 0 B, -, 0 B/s, ETA -
Errors:                 1 (no need to retry)
Elapsed time:         0.0s

2025/10/24 15:20:13 DEBUG : 5 go routines active
2025/10/24 15:20:13 NOTICE: Failed to copy: failed to prepare upload: operation error S3: CreateBucket, https response error StatusCode: 409, RequestID: , HostID: , BucketAlreadyExists:

$ rclone copy optparse.rb rustfs:backup/tech/ -vv --s3-no-check-bucket
2025/10/24 15:25:54 DEBUG : rclone: Version "v1.71.2" starting with parameters ["rclone" "copy" "optparse.rb" "rustfs:backup/tech/" "-vv""--s3-no-check-bucket"]
2025/10/24 15:25:54 DEBUG : Creating backend with remote "optparse.rb"
2025/10/24 15:25:54 DEBUG : Using config file from "/home/anon/.config/rclone/rclone.conf"
2025/10/24 15:25:54 DEBUG : fs cache: renaming child cache item "optparse.rb" to be canonical for parent "/home/anon/documents/tech/ruby"
2025/10/24 15:25:54 DEBUG : Creating backend with remote "rustfs:backup/tech/"
2025/10/24 15:25:54 DEBUG : rustfs: detected overridden config - adding "{Dn7qA}" suffix to name
2025/10/24 15:25:54 DEBUG : fs cache: renaming cache item "rustfs:backup/tech/" to be canonical "rustfs{Dn7qA}:backup/tech"
2025/10/24 15:25:54 DEBUG : optparse.rb: Need to transfer - File not found at Destination
2025/10/24 15:25:54 DEBUG : optparse.rb: md5 = 784a5815585953bb06336d384f294511 OK
2025/10/24 15:25:54 INFO  : optparse.rb: Copied (new)
2025/10/24 15:25:54 INFO  :
Transferred:   	   1.423 KiB / 1.423 KiB, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.0s

2025/10/24 15:25:54 DEBUG : 6 go routines active

Or rclone.conf:
[rustfs]
type = s3
provider = Minio
access_key_id = <acckey>
secret_access_key = <seckey>
region = us-west-1
no_check_bucket = true
endpoint = http://192.168.101.92:9000

$ rclone delete rustfs:backup/tech/optparse.rb

$ rclone copy optparse.rb rustfs:backup/tech/ -vv
2025/10/24 15:32:31 DEBUG : rclone: Version "v1.71.2" starting with parameters ["rclone" "copy" "optparse.rb" "rustfs:backup/tech/" "-vv"]
2025/10/24 15:32:31 DEBUG : Creating backend with remote "optparse.rb"
2025/10/24 15:32:31 DEBUG : Using config file from "/home/anon/.config/rclone/rclone.conf"
2025/10/24 15:32:31 DEBUG : fs cache: renaming child cache item "optparse.rb" to be canonical for parent "/home/anon/documents/tech/ruby"
2025/10/24 15:32:31 DEBUG : Creating backend with remote "rustfs:backup/tech/"
2025/10/24 15:32:31 DEBUG : fs cache: renaming cache item "rustfs:backup/tech/" to be canonical "rustfs:backup/tech"
2025/10/24 15:32:31 DEBUG : optparse.rb: Need to transfer - File not found at Destination
2025/10/24 15:32:31 DEBUG : optparse.rb: md5 = 784a5815585953bb06336d384f294511 OK
2025/10/24 15:32:31 INFO  : optparse.rb: Copied (new)
2025/10/24 15:32:31 INFO  :
Transferred:   	   1.423 KiB / 1.423 KiB, 100%, 0 B/s, ETA -
Transferred:            1 / 1, 100%
Elapsed time:         0.0s

2025/10/24 15:32:31 DEBUG : 5 go routines active

Expected behavior
rclone copy succeeds

Desktop (please complete the following information):
Arch current

Additional context
rustfs 1.0.0-Alpha.65
rustfs server is separate host on the same subnet
No firewall active on the rustfs server
Using Minio as the rclone provider as rustfs seems to be very close to Minio
With 'no_check_bucket = true' in place in rclone.conf everything works correctly
No issues with rclone copy and any other S3 storage

Metadata

Metadata

Assignees

Labels

S-confirmingStatus: Awaiting confirmation for a resolved issue

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions