Rclone deletefile why two HEAD before delete

What is the problem you are having with rclone?

why does rclone deletefile perform two HEAD before deleting the file?
in that case, rclone could/should assume the object is a file, not a directory, therefore, not require the first HEAD.

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

rclone version
rclone v1.63.1
- os/version: Microsoft Windows 11 Pro 22H2 (64 bit)
- os/kernel: 10.0.22621.2134 (x86_64)
- os/type: windows
- os/arch: amd64
- go/version: go1.20.6
- go/linking: static
- go/tags: cmount

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

S3, idrive, same applies to wasabi

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

rclone deletefile iall:zork\file.ext --no-traverse --no-check-dest -vv --dump=headers```

The rclone config contents with secrets removed.

[iall]
type = s3
provider = IDrive
access_key_id = redacted
secret_access_key = redacted
endpoint = o0e2.va12.idrivee2-9.com

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

rclone.exe deletefile iall:zork\file.ext -vv --dump=headers --no-traverse --no-check-dest 
2023/09/03 08:16:15 DEBUG : Setting --config "C:\\data\\rclone\\rclone.conf" from environment variable RCLONE_CONFIG="C:\\data\\rclone\\rclone.conf"
2023/09/03 08:16:15 DEBUG : rclone: Version "v1.63.1" starting with parameters ["C:\\data\\rclone\\rclone.exe" "deletefile" "iall:zork\\file.ext" "-vv" "--dump=headers" "--no-traverse" "--no-check-dest"]
2023/09/03 08:16:15 DEBUG : Creating backend with remote "iall:zork\\file.ext"
2023/09/03 08:16:15 DEBUG : Using config file from "C:\\data\\rclone\\rclone.conf"
2023/09/03 08:16:15 DEBUG : name = "iall", root = "zork/file.ext", opt = &s3.Options{Provider:"IDrive", EnvAuth:false, AccessKeyID:"sy6USn9KKNlZqpt1f37H", SecretAccessKey:"Lzm8prSGhu4gDnJ2a4hlVYkqPdwFy81PUYoS4JuY", Region:"", Endpoint:"o0e2.va12.idrivee2-9.com", STSEndpoint:"", LocationConstraint:"", ACL:"", BucketACL:"", RequesterPays:false, ServerSideEncryption:"", SSEKMSKeyID:"", SSECustomerAlgorithm:"", SSECustomerKey:"", SSECustomerKeyBase64:"", SSECustomerKeyMD5:"", StorageClass:"", UploadCutoff:209715200, CopyCutoff:4999341932, ChunkSize:5242880, MaxUploadParts:10000, DisableChecksum:false, SharedCredentialsFile:"", Profile:"", SessionToken:"", UploadConcurrency:4, ForcePathStyle:true, V2Auth:false, UseAccelerateEndpoint:false, LeavePartsOnError:false, ListChunk:1000, ListVersion:0, ListURLEncode:fs.Tristate{Value:false, Valid:false}, NoCheckBucket:false, NoHead:false, NoHeadObject:false, Enc:0x3000002, MemoryPoolFlushTime:60000000000, MemoryPoolUseMmap:false, DisableHTTP2:false, DownloadURL:"", DirectoryMarkers:false, UseMultipartEtag:fs.Tristate{Value:false, Valid:false}, UsePresignedRequest:false, Versions:false, VersionAt:fs.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}, Decompress:false, MightGzip:fs.Tristate{Value:false, Valid:false}, UseAcceptEncodingGzip:fs.Tristate{Value:false, Valid:false}, NoSystemMetadata:false}
2023/09/03 08:16:15 DEBUG : You have specified to dump information. Please be noted that the Accept-Encoding as shown may not be correct in the request and the response may not show Content-Encoding if the go standard libraries auto gzip encoding was in effect. In this case the body of the request will be gunzipped before showing it.
2023/09/03 08:16:15 DEBUG : Resolving service "s3" region "us-east-1"
2023/09/03 08:16:15 DEBUG : You have specified to dump information. Please be noted that the Accept-Encoding as shown may not be correct in the request and the response may not show Content-Encoding if the go standard libraries auto gzip encoding was in effect. In this case the body of the request will be gunzipped before showing it.
2023/09/03 08:16:15 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023/09/03 08:16:15 DEBUG : HTTP REQUEST (req 0xc000801800)
2023/09/03 08:16:15 DEBUG : HEAD /zork/file.ext HTTP/1.1
Host: o0e2.va12.idrivee2-9.com
User-Agent: rclone/v1.63.1
Authorization: XXXX
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20230903T121615Z

2023/09/03 08:16:15 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023/09/03 08:16:15 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023/09/03 08:16:15 DEBUG : HTTP RESPONSE (req 0xc000801800)
2023/09/03 08:16:15 DEBUG : HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: keep-alive
Content-Security-Policy: block-all-mixed-content
Content-Type: application/octet-stream
Date: Sun, 03 Sep 2023 12:16:14 GMT
Etag: "d41d8cd98f00b204e9800998ecf8427e"
Keep-Alive: timeout=5
Last-Modified: Sun, 03 Sep 2023 12:16:14 GMT
Server: nginx
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Origin
Vary: Accept-Encoding
X-Amz-Meta-Mtime: 1693488076.8254128
X-Amz-Request-Id: 178162A01FFB1346
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
Content-Length: 0

2023/09/03 08:16:15 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023/09/03 08:16:15 DEBUG : fs cache: adding new entry for parent of "iall:zork\\file.ext", "iall:zork"
2023/09/03 08:16:15 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023/09/03 08:16:15 DEBUG : HTTP REQUEST (req 0xc000801f00)
2023/09/03 08:16:15 DEBUG : HEAD /zork/file.ext HTTP/1.1
Host: o0e2.va12.idrivee2-9.com
User-Agent: rclone/v1.63.1
Authorization: XXXX
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20230903T121615Z

2023/09/03 08:16:15 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023/09/03 08:16:15 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023/09/03 08:16:15 DEBUG : HTTP RESPONSE (req 0xc000801f00)
2023/09/03 08:16:15 DEBUG : HTTP/1.1 200 OK
Accept-Ranges: bytes
Connection: keep-alive
Content-Security-Policy: block-all-mixed-content
Content-Type: application/octet-stream
Date: Sun, 03 Sep 2023 12:16:14 GMT
Etag: "d41d8cd98f00b204e9800998ecf8427e"
Keep-Alive: timeout=5
Last-Modified: Sun, 03 Sep 2023 12:16:14 GMT
Server: nginx
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Origin
Vary: Accept-Encoding
X-Amz-Meta-Mtime: 1693488076.8254128
X-Amz-Request-Id: 178162A021612833
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
Content-Length: 0

2023/09/03 08:16:15 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023/09/03 08:16:15 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023/09/03 08:16:15 DEBUG : HTTP REQUEST (req 0xc000ab4400)
2023/09/03 08:16:15 DEBUG : DELETE /zork/file.ext HTTP/1.1
Host: o0e2.va12.idrivee2-9.com
User-Agent: rclone/v1.63.1
Authorization: XXXX
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
X-Amz-Date: 20230903T121615Z
Accept-Encoding: gzip

2023/09/03 08:16:15 DEBUG : >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
2023/09/03 08:16:15 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023/09/03 08:16:15 DEBUG : HTTP RESPONSE (req 0xc000ab4400)
2023/09/03 08:16:15 DEBUG : HTTP/1.1 204 No Content
Accept-Ranges: bytes
Connection: keep-alive
Content-Security-Policy: block-all-mixed-content
Date: Sun, 03 Sep 2023 12:16:14 GMT
Keep-Alive: timeout=5
Server: nginx
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Origin
Vary: Accept-Encoding
X-Amz-Request-Id: 178162A022F3AEF1
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block

2023/09/03 08:16:15 DEBUG : <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
2023/09/03 08:16:15 INFO  : file.ext: Deleted

thanks, i thought it was better to start a new topic.

in the end, not a huge issue, just trying to better understand rclone.

in that topic, the command was rclone delete
in this topic, the command is rclone deletefile

so the question remains,
if rclone deletefile makes clear the object to be deleted is a file, not a directory,
then why does rclone deletefile perform the first HEAD, knowing that result will be thrown away.
in the end, always, there will be that second required HEAD