1
0
mirror of https://github.com/gilbertchen/duplicacy synced 2025-12-06 00:03:38 +00:00

Fixed 400 error processing for MoveFile/PATCH (in this case there are valid 400 errors that designate non-existent target directory)

This commit is contained in:
Victor Mozgin
2023-04-14 19:32:58 -04:00
parent ee344a0abe
commit 4056618204

View File

@@ -201,7 +201,12 @@ func (client *OneDriveClient) call(url string, method string, input interface{},
continue
} else if response.StatusCode == 409 {
return nil, 0, OneDriveError{Status: response.StatusCode, Message: "Conflict"}
} else if response.StatusCode >= 400 && response.StatusCode != 404 {
} else if response.StatusCode >= 400 && response.StatusCode != 404 && !(
method == "PATCH" && response.StatusCode == 400) {
// MoveFile uses PATCH method, and it unfortunately relies on
// processing 400 errors for detecting non-existent target
// folders. So in this case we bubble up 400 errors to be handled
// in MoveFile
delay := int((rand.Float32() * 0.5 + 0.5) * 1000.0 * float32(backoff))
if backoffList, found := response.Header["Retry-After"]; found && len(backoffList) > 0 {
retryAfter, _ := strconv.Atoi(backoffList[0])