I thought rclone bug or my possible misconfiguration caused a bug in Duplicati’s send.
rclone serve http C:\rclone --addr 127.0.0.1:8075
--send-http-json-urls=http://127.0.0.1:8075
Results are erratic, but testing varied. Here’s rclone rejecting send, upsetting Duplicati:
2025-04-20 17:10:35 -04 - [Verbose-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseMessage]: HTTP Response to http://127.0.0.1:8075: 405 - Method Not Allowed: Method Not Allowed
2025-04-20 17:10:35 -04 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 1 of 3 failed for: http://127.0.0.1:8075
System.Net.Http.HttpRequestException: Response status code does not indicate success: 405 (Method Not Allowed).
at System.Net.Http.HttpResponseMessage.EnsureSuccessStatusCode()
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2025-04-20 17:10:36 -04 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 2 of 3 failed for: http://127.0.0.1:8075
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.CheckRequestMessage(HttpRequestMessage request)
at System.Net.Http.HttpClient.CheckRequestBeforeSend(HttpRequestMessage request)
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2025-04-20 17:10:37 -04 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 3 of 3 failed for: http://127.0.0.1:8075
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.CheckRequestMessage(HttpRequestMessage request)
at System.Net.Http.HttpClient.CheckRequestBeforeSend(HttpRequestMessage request)
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2025-04-20 17:10:37 -04 - [Warning-Duplicati.Library.Modules.Builtin.ReportHelper-ReportSubmitError]: Failed to send message: System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.CheckRequestMessage(HttpRequestMessage request)
at System.Net.Http.HttpClient.CheckRequestBeforeSend(HttpRequestMessage request)
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
at Duplicati.Library.Utility.RetryHelper.Retry(Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.SendMessage(HttpClient client, SendRequestType target, String subject, String body)
at Duplicati.Library.Utility.Utility.Await[T](Task`1 task)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.SendMessage(String subject, String body)
at Duplicati.Library.Modules.Builtin.ReportHelper.OnFinish(IBasicResults result, Exception exception)
2025-04-20 17:10:37 -04 - [Warning-Duplicati.Library.Modules.Builtin.ReportHelper-ReportSubmitError]: Failed to send message: System.NullReferenceException: Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
at Duplicati.Library.Modules.Builtin.SendMail.SendMessage(String subject, String body)
at Duplicati.Library.Modules.Builtin.ReportHelper.OnFinish(IBasicResults result, Exception exception)
2025-04-20 17:10:37 -04 - [Information-Duplicati.Library.Main.Controller-CompletedOperation]: The operation Backup has completed
Here’s one with rclone down, so Duplicati is instantly refused on its connection request:
System.Net.Http.HttpRequestException: No connection could be made because the target machine actively refused it. (127.0.0.1:8075)
---> System.Net.Sockets.SocketException (10061): No connection could be made because the target machine actively refused it.
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.ThrowException(SocketError error, CancellationToken cancellationToken)
at System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
at System.Net.Sockets.Socket.<ConnectAsync>g__WaitForConnectWithCancellation|285_0(AwaitableSocketAsyncEventArgs saea, ValueTask connectTask, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at System.Net.Http.HttpConnectionPool.ConnectToTcpHostAsync(String host, Int32 port, HttpRequestMessage initialRequest, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.AddHttp11ConnectionAsync(QueueItem queueItem)
at System.Threading.Tasks.TaskCompletionSourceWithCancellation`1.WaitWithCancellationAsync(CancellationToken cancellationToken)
at System.Net.Http.HttpConnectionPool.SendWithVersionDetectionAndRetryAsync(HttpRequestMessage request, Boolean async, Boolean doRequestAuth, CancellationToken cancellationToken)
at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, Boolean async, CancellationToken cancellationToken)
at System.Net.Http.HttpClient.<SendAsync>g__Core|83_0(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationTokenSource cts, Boolean disposeCts, CancellationTokenSource pendingRequestsCts, CancellationToken originalCancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2025-04-20 17:02:48 -04 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 2 of 3 failed for: http://127.0.0.1:8075
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.CheckRequestMessage(HttpRequestMessage request)
at System.Net.Http.HttpClient.CheckRequestBeforeSend(HttpRequestMessage request)
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2025-04-20 17:02:49 -04 - [Warning-Duplicati.Library.Modules.Builtin.SendHttpMessage-HttpResponseError]: HTTP Response request attempt 3 of 3 failed for: http://127.0.0.1:8075
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.CheckRequestMessage(HttpRequestMessage request)
at System.Net.Http.HttpClient.CheckRequestBeforeSend(HttpRequestMessage request)
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
2025-04-20 17:02:49 -04 - [Warning-Duplicati.Library.Modules.Builtin.ReportHelper-ReportSubmitError]: Failed to send message: System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
System.InvalidOperationException: The request message was already sent. Cannot send the same request message multiple times.
at System.Net.Http.HttpClient.CheckRequestMessage(HttpRequestMessage request)
at System.Net.Http.HttpClient.CheckRequestBeforeSend(HttpRequestMessage request)
at System.Net.Http.HttpClient.SendAsync(HttpRequestMessage request, HttpCompletionOption completionOption, CancellationToken cancellationToken)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.<>c__DisplayClass62_0.<<SendMessage>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.<>c__DisplayClass2_0.<<Retry>b__0>d.MoveNext()
--- End of stack trace from previous location ---
at Duplicati.Library.Utility.RetryHelper.Retry[T](Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
at Duplicati.Library.Utility.RetryHelper.Retry(Func`1 action, Action`2 errorCallback, Int32 maxRetries, TimeSpan delay, CancellationToken token)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.SendMessage(HttpClient client, SendRequestType target, String subject, String body)
at Duplicati.Library.Utility.Utility.Await[T](Task`1 task)
at Duplicati.Library.Modules.Builtin.SendHttpMessage.SendMessage(String subject, String body)
at Duplicati.Library.Modules.Builtin.ReportHelper.OnFinish(IBasicResults result, Exception exception)
2025-04-20 17:02:50 -04 - [Warning-Duplicati.Library.Modules.Builtin.ReportHelper-ReportSubmitError]: Failed to send message: System.NullReferenceException: Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
at Duplicati.Library.Modules.Builtin.SendMail.SendMessage(String subject, String body)
at Duplicati.Library.Modules.Builtin.ReportHelper.OnFinish(IBasicResults result, Exception exception)
2025-04-20 17:02:50 -04 - [Information-Duplicati.Library.Main.Controller-CompletedOperation]: The operation Backup has completed
EDIT 1:
Of course this is a log-file (which I always have), but the live log was also showing the maybe-expected retries, but then also the probably-not-correct NullReferenceException.
This is Windows and 2.1.0.112, just something convenient at the time, so I did some tests.
EDIT 2:
I never did figure out how to get rclone to stop giving 405 Method Not Allowed. I tried an rclone web server because I didn’t have anything else handy except maybe just nc -l.
Then I went looking for a suitably free-and-easy webhook test site. This was the first I tried.