Release: 2.0.9.109 (Canary) 2024-11-06

2.0.9.109_canary_2024-11-06

This release is a canary release intended to be used for testing.
This release is expected to progress to a stable release if no major blockers are found.

Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.
The builds are self-contained so Mono or .NET installations are not required to install.

For users running on builds prior to 2.0.9.x, this build will appear later as an update that requires manual installation.

Important changes from last Beta

  • Updated to .NET8 with OS specific builds
  • Using Kestrel as the API/UI server
  • Mandatory password and new authentication scheme for server
  • Settings database version updated to v8
  • Backup database updated to v13

Please see list of known issues related to .NET8/Kestrel upgrade:

New tool to manage a running server

Due to incompatibility with duplicati_client a new tool is included, named Duplicati.CommandLine.ServerUtil.exe/duplicati-server-util.

Upgrade from v2.0.9.105

If you are upgrading from 2.0.9.105 please see the release notes from 2.0.9.106 for how to prepare the database.
Upgrades from other versions do not need special steps.

Downgrade backup database to v12

If you need to go back to v12, run these two SQL statements:

DROP INDEX "UniqueBlockVolumeDuplicateBlock";
UPDATE "Version" SET "Version" = 12;

Detailed list of changes:

  • Updated list of S3 endpoints to include Segate Lyve
  • Updated all backends to support asyncronous calls
  • Bugfixes for the new API implementation
  • Bugfix for recreate failing on some systems
  • Added option to disregard advisory locking on Linux
  • Fixed issues with WebDAV and self-signed certificates
  • Removed the deprecated FTP backend and made FluentFTP handle both FTP and aFTP
  • Fixed a performance issue with compacting
  • Fixed issues with remote control registration
  • Fixed a performance issue with SharpAESCrypt
  • Fixed an incorrect error masking another error in backups
  • Support for EC-based certificates, thanks @mnaiman
  • Always excluding the SQLite journal file for the active database
  • Added support for detecting self-signed certificates and securely accepting them
  • Cleaned up CSS/Less files, thanks @luixxiul
  • Improved IPv6 support for loopback and any
  • Fixed Rclone backend not setting defaults for empty strings
  • Fixed a bug in the recompress tool, if not using encryption
  • Fixed an issue where SharePoint would not honor the server throttle requests
  • Improved cleanup after removing volumes, thanks @Jojo-1000
  • Removed 7z compression
  • Simplified showing the default value of boolean options
  • Fixed an issue with leftover index files, thanks @Jojo-1000 and @ts678
  • Fixed an issue that would cause verification errors if the compact was interrupted, thanks @Jojo-1000 and @ts678
  • Fixed an issue where dindex files would be missing a blocklist, causing extra download on restores
  • Fixed CSS/Less to rely on autoprefixer, thanks @luixxiul
  • Added support for reducing the system load intensity
  • Disabled Telegram notification destination
  • Added support for external secret providers
3 Likes

If someone was using 7z compression with earlier versions, does that mean they cannot continue backups if upgrading to this one? What is their path forward?

(Doesn’t affect me, but I thought I’d ask…)

If you were using 7z compression, you should have gotten a warning on each backup for the last 7 years or so.

If you are on some really old version that did not emit the warning, you would need to work with the recompress tool to rewrite the files as .zip for now.

And thanks for asking! It is likely that someone will search for that exact question but not go through the trouble to create an account to do so. Now the answer can be found from search engines.

https://usage-reporter.duplicati.com/ says there are very few backups now done on .7z.

image

Any thoughts on a bigger push for Canary test (given lack of autoupdate) or Beta testing?

I’d also like to know documentation (manual, How-To, etc.) plan to assist a smooth rollout.

Basically, wording is unclear. If it means 2.0.9.109 will go right to stable, that’s aggressive.

On the other hand, manual migration might be slow, which might help smooth out support.

Given that it has been giving a warning for the past 7 years, I think they are on an old version of Duplicati. I assume they will want to stay on an old version. There are a lot of open issues around 7z that I think we should close now.

If we are to re-add 7z (LZMA2) support, we should find a maintained library.

Given the known issues with the current beta approach (using Mono etc), I would like to push for a stable release. This canary build will stay for a while for testing before progressing to an experimental, then beta, then stable.

I want to push for the stable release, but not rush it so we have something that is not tested in real environments.

For the missing auto-update, I would like an automated update process, but I think it is more important to get the stable release out.

Agree. That would be irresponsible IMO. There are quite a few fixes in this canary.

The time between this release and the experimental build will be spent on both building documentation (more on that later) and adding the two missing Agent installers (Windows and MacOS).

Updating is usually slow. This is the current version ratios:

Updating my Windows Server 2022 machines and they all show this when logged into the GUI

image

And it comes back on refreshing my browser.

Logging out or restarting the service makes no difference and nothing looks wrong when I click ok.

Only other things I then notice are:

This takes forever to finally show the current version on my Linux machines, and never seems to update on Windows:

image

No server name in tab title, Windows only, ok on Linux - it’s not the browser, both Brave and Firefox

Event log on Windows has these logged:

Log Name:      Application
Source:        .NET Runtime
Date:          07/11/2024 10:26:32
Event ID:      1000
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      LISA.mydomain.com
Description:
Category: Microsoft.AspNetCore.Server.Kestrel
EventId: 13
SpanId: ef3f4ce9683aae12
TraceId: 5dfb8938c1094304563a67e0b65d1c7b
ParentId: 0000000000000000
ConnectionId: 0HN7V1ICIJQOD
RequestId: 0HN7V1ICIJQOD:000000FB
RequestPath: /api/v1/systeminfo

Connection id "0HN7V1ICIJQOD", Request id "0HN7V1ICIJQOD:000000FB": An unhandled exception was thrown by the application.

Exception: 
System.AggregateException: An error occurred while writing to logger(s). (Could not load type 'Amazon.Runtime.Internal.AWSSignerTypeAttribute' from assembly 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604'.) (Could not load type 'Amazon.Runtime.Internal.AWSSignerTypeAttribute' from assembly 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604'.)
 ---> System.TypeLoadException: Could not load type 'Amazon.Runtime.Internal.AWSSignerTypeAttribute' from assembly 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604'.
   at System.ModuleHandle.ResolveType(QCallModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(MetadataToken caCtorToken, MetadataImport& scope, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1& derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctorWithParameters, Boolean& isVarArg)
   at System.Reflection.CustomAttribute.IsCustomAttributeDefined(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Int32 attributeCtorToken, Boolean mustBeInheritable)
   at System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat, StringBuilder sb)
   at System.Exception.get_StackTrace()
   at System.Exception.ToString()
   at Microsoft.Extensions.Logging.Console.SimpleConsoleFormatter.CreateDefaultLogMessage[TState](TextWriter textWriter, LogEntry`1& logEntry, String message, IExternalScopeProvider scopeProvider)
   at Microsoft.Extensions.Logging.Console.SimpleConsoleFormatter.Write[TState](LogEntry`1& logEntry, IExternalScopeProvider scopeProvider, TextWriter textWriter)
   at Microsoft.Extensions.Logging.Console.ConsoleLogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
   at Microsoft.Extensions.Logging.Logger.<Log>g__LoggerLog|14_0[TState](LogLevel logLevel, EventId eventId, ILogger logger, Exception exception, Func`3 formatter, List`1& exceptions, TState& state)
   --- End of inner exception stack trace ---
   at Microsoft.Extensions.Logging.Logger.ThrowLoggingError(List`1 exceptions)
   at Microsoft.Extensions.Logging.Logger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
   at Microsoft.Extensions.Logging.Logger`1.Microsoft.Extensions.Logging.ILogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
   at Microsoft.Extensions.Logging.LoggerMessage.<>c__DisplayClass8_0.<Define>g__Log|0(ILogger logger, Exception exception)
   at Microsoft.AspNetCore.Diagnostics.DiagnosticsTelemetry.ReportUnhandledException(ILogger logger, HttpContext context, Exception ex)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.HandleException(HttpContext context, ExceptionDispatchInfo edi)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
   at Duplicati.WebserverCore.Middlewares.StaticFilesExtensions.<>c__DisplayClass5_0.<<UseDefaultStaticFiles>b__1>d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
 ---> (Inner Exception #1) System.TypeLoadException: Could not load type 'Amazon.Runtime.Internal.AWSSignerTypeAttribute' from assembly 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604'.
   at System.ModuleHandle.ResolveType(QCallModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(MetadataToken caCtorToken, MetadataImport& scope, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1& derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctorWithParameters, Boolean& isVarArg)
   at System.Reflection.CustomAttribute.IsCustomAttributeDefined(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Int32 attributeCtorToken, Boolean mustBeInheritable)
   at System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat, StringBuilder sb)
   at System.Exception.get_StackTrace()
   at System.Exception.ToString()
   at System.Text.StringBuilder.Append(Object value)
   at Microsoft.Extensions.Logging.EventLog.EventLogLogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
   at Microsoft.Extensions.Logging.Logger.<Log>g__LoggerLog|14_0[TState](LogLevel logLevel, EventId eventId, ILogger logger, Exception exception, Func`3 formatter, List`1& exceptions, TState& state)<---


Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name=".NET Runtime" />
    <EventID Qualifiers="0">1000</EventID>
    <Version>0</Version>
    <Level>2</Level>
    <Task>0</Task>
    <Opcode>0</Opcode>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2024-11-07T09:26:32.1856257Z" />
    <EventRecordID>450720</EventRecordID>
    <Correlation />
    <Execution ProcessID="0" ThreadID="0" />
    <Channel>Application</Channel>
    <Computer>LISA.mydomain.com</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Category: Microsoft.AspNetCore.Server.Kestrel
EventId: 13
SpanId: ef3f4ce9683aae12
TraceId: 5dfb8938c1094304563a67e0b65d1c7b
ParentId: 0000000000000000
ConnectionId: 0HN7V1ICIJQOD
RequestId: 0HN7V1ICIJQOD:000000FB
RequestPath: /api/v1/systeminfo

Connection id "0HN7V1ICIJQOD", Request id "0HN7V1ICIJQOD:000000FB": An unhandled exception was thrown by the application.

Exception: 
System.AggregateException: An error occurred while writing to logger(s). (Could not load type 'Amazon.Runtime.Internal.AWSSignerTypeAttribute' from assembly 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604'.) (Could not load type 'Amazon.Runtime.Internal.AWSSignerTypeAttribute' from assembly 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604'.)
 ---&gt; System.TypeLoadException: Could not load type 'Amazon.Runtime.Internal.AWSSignerTypeAttribute' from assembly 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604'.
   at System.ModuleHandle.ResolveType(QCallModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(MetadataToken caCtorToken, MetadataImport&amp; scope, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1&amp; derivedAttributes, RuntimeType&amp; attributeType, IRuntimeMethodInfo&amp; ctorWithParameters, Boolean&amp; isVarArg)
   at System.Reflection.CustomAttribute.IsCustomAttributeDefined(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Int32 attributeCtorToken, Boolean mustBeInheritable)
   at System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat, StringBuilder sb)
   at System.Exception.get_StackTrace()
   at System.Exception.ToString()
   at Microsoft.Extensions.Logging.Console.SimpleConsoleFormatter.CreateDefaultLogMessage[TState](TextWriter textWriter, LogEntry`1&amp; logEntry, String message, IExternalScopeProvider scopeProvider)
   at Microsoft.Extensions.Logging.Console.SimpleConsoleFormatter.Write[TState](LogEntry`1&amp; logEntry, IExternalScopeProvider scopeProvider, TextWriter textWriter)
   at Microsoft.Extensions.Logging.Console.ConsoleLogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
   at Microsoft.Extensions.Logging.Logger.&lt;Log&gt;g__LoggerLog|14_0[TState](LogLevel logLevel, EventId eventId, ILogger logger, Exception exception, Func`3 formatter, List`1&amp; exceptions, TState&amp; state)
   --- End of inner exception stack trace ---
   at Microsoft.Extensions.Logging.Logger.ThrowLoggingError(List`1 exceptions)
   at Microsoft.Extensions.Logging.Logger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
   at Microsoft.Extensions.Logging.Logger`1.Microsoft.Extensions.Logging.ILogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
   at Microsoft.Extensions.Logging.LoggerMessage.&lt;&gt;c__DisplayClass8_0.&lt;Define&gt;g__Log|0(ILogger logger, Exception exception)
   at Microsoft.AspNetCore.Diagnostics.DiagnosticsTelemetry.ReportUnhandledException(ILogger logger, HttpContext context, Exception ex)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.HandleException(HttpContext context, ExceptionDispatchInfo edi)
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.&lt;Invoke&gt;g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
   at Duplicati.WebserverCore.Middlewares.StaticFilesExtensions.&lt;&gt;c__DisplayClass5_0.&lt;&lt;UseDefaultStaticFiles&gt;b__1&gt;d.MoveNext()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
 ---&gt; (Inner Exception #1) System.TypeLoadException: Could not load type 'Amazon.Runtime.Internal.AWSSignerTypeAttribute' from assembly 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604'.
   at System.ModuleHandle.ResolveType(QCallModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
   at System.ModuleHandle.ResolveTypeHandle(Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
   at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
   at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(MetadataToken caCtorToken, MetadataImport&amp; scope, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, ListBuilder`1&amp; derivedAttributes, RuntimeType&amp; attributeType, IRuntimeMethodInfo&amp; ctorWithParameters, Boolean&amp; isVarArg)
   at System.Reflection.CustomAttribute.IsCustomAttributeDefined(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, RuntimeType attributeFilterType, Int32 attributeCtorToken, Boolean mustBeInheritable)
   at System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat, StringBuilder sb)
   at System.Exception.get_StackTrace()
   at System.Exception.ToString()
   at System.Text.StringBuilder.Append(Object value)
   at Microsoft.Extensions.Logging.EventLog.EventLogLogger.Log[TState](LogLevel logLevel, EventId eventId, TState state, Exception exception, Func`3 formatter)
   at Microsoft.Extensions.Logging.Logger.&lt;Log&gt;g__LoggerLog|14_0[TState](LogLevel logLevel, EventId eventId, ILogger logger, Exception exception, Func`3 formatter, List`1&amp; exceptions, TState&amp; state)&lt;---

</Data>
  </EventData>
</Event>

Have not tried backups yet.

Just spotted this on all Windows installs, the log options are all missing
image

Oh and please, can we set theme default permanently because it keeps randomly setting it back to eye-piercing bright white and I have to keep setting it back. Doesn’t matter what browser I use.

Damn this just happened on one of my Linux installs and then shortly after a few minutes they all appear then disappear, and even when I start a new backup no live logging is possible when I choose any level when they are there.

Nov 07 11:10:29 maggie.mydomain.com duplicati-server[203684]: [WebSocket] Client closed connection prematurely.
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]: fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:       An unhandled exception has occurred while executing the request.
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:       System.NullReferenceException: Object reference not set to an instance of an object.
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Dto.LogEntry.FromInternalEntry(LogEntry entry)
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Endpoints.V1.LogData.<>c.<ExecuteLogPoll>b__1_0(LogEntry x)
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at System.Linq.Enumerable.SelectArrayIterator`2.Fill(ReadOnlySpan`1 source, Span`1 destination, Func`2 func)
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Endpoints.V1.LogData.ExecuteLogPoll(LogMessageType level, Int64 id, Int64 offset, Int32 pagesize)
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at lambda_method231(Closure, EndpointFilterInvocationContext)
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Middlewares.HostnameFilter.InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Middlewares.LanguageFilter.InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at Microsoft.AspNetCore.Http.RequestDelegateFactory.<ExecuteValueTaskOfObject>g__ExecuteAwaited|129_0(ValueTask`1 valueTask, HttpContext httpContext, JsonTypeI>
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Middlewares.WebsocketExtensions.<>c__DisplayClass0_0.<<UseNotifications>b__0>d.MoveNext()
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:       --- End of stack trace from previous location ---
Nov 07 11:12:43 maggie.mydomain.com duplicati-server[203684]:          at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task>
Nov 07 11:14:14 maggie.mydomain.com duplicati-server[203684]: [WebSocket] Client closed connection prematurely.
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]: fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:       An unhandled exception has occurred while executing the request.
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:       System.NullReferenceException: Object reference not set to an instance of an object.
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Dto.LogEntry.FromInternalEntry(LogEntry entry)
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Endpoints.V1.LogData.<>c.<ExecuteLogPoll>b__1_0(LogEntry x)
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at System.Linq.Enumerable.SelectArrayIterator`2.Fill(ReadOnlySpan`1 source, Span`1 destination, Func`2 func)
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Endpoints.V1.LogData.ExecuteLogPoll(LogMessageType level, Int64 id, Int64 offset, Int32 pagesize)
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at lambda_method231(Closure, EndpointFilterInvocationContext)
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Middlewares.HostnameFilter.InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Middlewares.LanguageFilter.InvokeAsync(EndpointFilterInvocationContext context, EndpointFilterDelegate next)
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at Microsoft.AspNetCore.Http.RequestDelegateFactory.<ExecuteValueTaskOfObject>g__ExecuteAwaited|129_0(ValueTask`1 valueTask, HttpContext httpContext, JsonTypeI>
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at Duplicati.WebserverCore.Middlewares.WebsocketExtensions.<>c__DisplayClass0_0.<<UseNotifications>b__0>d.MoveNext()
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:       --- End of stack trace from previous location ---
Nov 07 11:15:41 maggie.mydomain.com duplicati-server[203684]:          at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaite

--webservice-port option has vanished from the help (which is getting pretty big and messy).

Comparing files help.108.txt and HELP.109.TXT
***** help.108.txt
neath the installation folder.
--webservice-port: The port the webserver listens on. Multiple values may be supplied with a comma in between.
--webservice-sslcertificatefile: The certificate and key file in PKCS #12 format the webserver use for SSL. Only RSA/DSA keys a
re supported.
--webservice-sslcertificatepassword: The password for decryption of certificate PKCS #12 file.
--webservice-interface: The interface the webserver listens on. The special values "*" and "any" means any interface. The speci
***** HELP.109.TXT
neath the installation folder.
--webservice-disable-https: Deactivates the use of HTTPS even if a certificate is stored in the database or provided on the com
mandline.
--webservice-remove-sslcertificate: Removes any existing certificate from the database. This option also disables HTTPS.
--webservice-sslcertificatefile: The certificate and key file in PKCS #12 format the webserver use for SSL.
--webservice-sslcertificatepassword: The password for decryption of the provided certificate PKCS #12 file.
--webservice-interface: The interface the webserver listens on. The special values "*" and "any" means any interface. The speci
*****

***** help.108.txt
***** HELP.109.TXT
--settings-encryption-key: Use this option to set the encryption key for the settings database. This option can also be set wit
h the environment variable SETTINGS_ENCRYPTION_KEY.
--secret-provider: Configures a secret provider to use for reading credentials. Use the commandline tool Duplicati.CommandLine.
SecretTool.exe to test the provider and see supported options. This value is interpreted as an environment variable if it start
s with '$' or begins and ends with '%'.
--secret-provider-pattern: Use this option to specify a pattern for secret provider options. The pattern is used to find values
 that are intended to be translated by the secret provider. Patterns are treated as a prefix, with support for braces.
--secret-provider-cache: Use this option to set the allowed caching of credentials from the secret provider. Setting a cache le
vel may reduce the security but allow the backups to continue despite provider outages.
*****

Fortunately the undocumented option still seems to work. Unfortunately (but I’m unsure it’s a new issue), giving invalid options doesn’t seem to get a complaint about unrecognized option. Testing with Server for fc diff, however lost option was first noticed on TrayIcon while intending to use it.

Looking at GUI update information, as there have been user questions about stale data.

image

I suspect Duplicati-server.sqlite is persisting the notification in the Notification table:

1 Information Found update Duplicati v2.0.9.107 - Canary update:new 1726225839 NewUpdateFound

Using the Dismiss button clears the popup and the row in the database seen above.

Screen still tells me:

You are currently running Duplicati - 2.0.9.109_canary_2024-11-06
Update 2.0.9.107 is available. Download now
Check for updates now

Click link on last line while watching host updates.duplicati.com with Wireshark.
No change despite a connect to the right SNI. Most of the conversation is encrypted.

In DB Options table, update-check-latest is present, but thinks latest is 2.0.9.107:

{
  "MinimumCompatibleVersion": 2,
  "IncompatibleUpdateUrl": "https://duplicati.com/download-dynamic?channel=canary&update_from=2.0.9.107",
  "Displayname": "Duplicati v2.0.9.107 - Canary",
  "Version": "2.0.9.107",
  "ReleaseTime": "2024-09-11T13:53:17.880666Z",
  "ReleaseType": "canary",
  "UpdateSeverity": null,
  "ChangeInfo": "This release is a canary release intended to be used for testing in preparation of a later stable release.\n\n**Unlike regular canary builds, this one has a major change in the build system, so it now runs on .NET8.**\n\nFor that reason, the updater in previous canary builds does not detect this update yet, but this can be activated at a later time.\n\nThe builds are self-contained so Mono or .NET installations are not required to install.\n\n**Important changes from last Beta**\n- Updated to .NET8 with OS specific builds\n- Using Kestrel as the API/UI server\n- Mandatory password and new authentication scheme for server\n- Settings database version updated to v8\n\nPlease see list of known issues related to .NET8/Kestrel upgrade:\nhttps://github.com/orgs/duplicati/projects/2\n\n# New tool to manage a running server\nDue to incompatibility with `duplicati_client` a new tool is included, named `Duplicati.CommandLine.ServerUtil.exe`/`duplicati-server-util`.\n\n# Upgrade from `v2.0.9.105`\nIf you are upgrading from 2.0.9.105 please see the release notes from 2.0.9.106 for how to prepare the database. \nUpgrades from other versions do not need special steps.\n\n## Detailed list of changes:\n- Prepared some additional localization strings\n- Fixed a bug with server-util not finding backups by name\n- Added support for insecure connections from server-util\n- Embedding backwards compatible ARMv7 binaries in builds\n- Another fix for MSI packages breaking on upgrade\n- Improved Swagger output to include types\n- Replaced `WebRequest` for WebDAV with `HttpClient`\n- Reduced log output from server-util and TrayIcon\n- Microfix for USN parsing\n- Fixed a case where almost identical files could cause broken index files, thanks @Jojo-1000\n- Also improved handling when reading index files with broken lists, thanks @Jojo-1000\n- Fixed auto-repair failing due to locked databases, thanks @Jojo-1000",
  "PackageUpdaterVersion": 2,
  "Packages": [
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-x64-gui.zip",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-x64-gui.zip"
      ],
      "Length": 76179619,
      "MD5": "EDdVcBicFqck48DF533yTQ==",
      "SHA256": "arc1eqMW/t6IzaWrEb+hBV+F5kcCbURwk8Ri5rNN7Vk=",
      "PackageTypeId": "win-x64-gui.zip"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-x64-gui.msi",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-x64-gui.msi"
      ],
      "Length": 79282176,
      "MD5": "3ECu3HpoydnrouuLCgsvVg==",
      "SHA256": "ElkGDtv7ped9bw6BpwPSHc44cIgdLnGUWg20rXAavm8=",
      "PackageTypeId": "win-x64-gui.msi"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-x86-gui.zip",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-x86-gui.zip"
      ],
      "Length": 71394889,
      "MD5": "U+uExvN2Y8NxyFqf+V8OAA==",
      "SHA256": "PAb8wzTxvDpVAwkXlYT2tltKp66agn4vvQE40Yerwbc=",
      "PackageTypeId": "win-x86-gui.zip"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-x86-gui.msi",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-x86-gui.msi"
      ],
      "Length": 74395648,
      "MD5": "YSwNtXwH4YjgQrrFfdRWhg==",
      "SHA256": "kscEgO1q8C0U/XrLPB0gWyiyAezwIA1SSNM7c+CZFZ4=",
      "PackageTypeId": "win-x86-gui.msi"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-arm64-gui.zip",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-arm64-gui.zip"
      ],
      "Length": 73894776,
      "MD5": "61gMrgXKGXmEI21xZzbf2w==",
      "SHA256": "lPzR79BkXkZ384jWnH6W5jwAtq8IGcuPtLlsJ2fp7fU=",
      "PackageTypeId": "win-arm64-gui.zip"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-arm64-gui.msi",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-win-arm64-gui.msi"
      ],
      "Length": 77377536,
      "MD5": "hIIMYyLZiZE0Unrjvus3Qw==",
      "SHA256": "ygtceLRufvrg0UNoG0DejkDVPeqkYf/1gasgthGYwjI=",
      "PackageTypeId": "win-arm64-gui.msi"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-gui.zip",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-gui.zip"
      ],
      "Length": 76516604,
      "MD5": "QdgYNAEv8EM4P7SJJyO3tA==",
      "SHA256": "wgiE60tf/enfZQcfBVbIKeatL193KOVKMIO3Q22A/DU=",
      "PackageTypeId": "linux-x64-gui.zip"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-gui.deb",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-gui.deb"
      ],
      "Length": 75335168,
      "MD5": "988wxKYP/C13f7lufC3KZQ==",
      "SHA256": "OdZOJW+i7gnU958q31YSFCX0Bkugvra2DQrsl8zvM2k=",
      "PackageTypeId": "linux-x64-gui.deb"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-gui.rpm",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-gui.rpm"
      ],
      "Length": 56607736,
      "MD5": "AzRSD3i6McGNsIalJIykVw==",
      "SHA256": "2EMQTuKlV/+UR0S0idoujor7QxfTD362sgn76ZM7ugA=",
      "PackageTypeId": "linux-x64-gui.rpm"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm7-gui.deb",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm7-gui.deb"
      ],
      "Length": 72079592,
      "MD5": "6ENJf8a1bTzD7BhS6DryTg==",
      "SHA256": "XPi2CIKYARRh61fy+BAWWYwW/FQ6/ro7oLf+WPR4wyg=",
      "PackageTypeId": "linux-arm7-gui.deb"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm7-cli.deb",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm7-cli.deb"
      ],
      "Length": 65693452,
      "MD5": "lI7YjqNfRVvyqR3c+IAayg==",
      "SHA256": "iG4c6JCBvymgkQw3rdML+5N5rFifQqFYa05k1GgJP0I=",
      "PackageTypeId": "linux-arm7-cli.deb"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-cli.zip",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-cli.zip"
      ],
      "Length": 69097336,
      "MD5": "exT+6gIpPmCXXZk1m//6dA==",
      "SHA256": "yJ/gMlztdG5qseWnSNORP/o+f2dqo9CLXaaAsA75Y6c=",
      "PackageTypeId": "linux-x64-cli.zip"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-cli.deb",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-cli.deb"
      ],
      "Length": 67947844,
      "MD5": "iRuCIyx5KFT0GwRsIo41Wg==",
      "SHA256": "4pDgbHQ42zWC2OfKdrVxJvhBeOxN5t3+yXFEnXllJU8=",
      "PackageTypeId": "linux-x64-cli.deb"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-cli.rpm",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-x64-cli.rpm"
      ],
      "Length": 50555790,
      "MD5": "gGq9xrMm4/uKGIMk6eHyYQ==",
      "SHA256": "Lm9Ea0xlpSpVrtzln/U+/DI1ERcqTA4oCUIgcvgDk+A=",
      "PackageTypeId": "linux-x64-cli.rpm"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-gui.zip",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-gui.zip"
      ],
      "Length": 73829437,
      "MD5": "OJn2fJi72cfZQv24MNGa4A==",
      "SHA256": "wFRE7XNLfA2/2CEDxCoIo7WB1JpbnPWOPUeibeYlZnM=",
      "PackageTypeId": "linux-arm64-gui.zip"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-gui.deb",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-gui.deb"
      ],
      "Length": 72712244,
      "MD5": "81UQLr/9W9GygYwRC9hMRA==",
      "SHA256": "hWGL4T8+scxizD/HRa6VoQwXzoSNS7e0VSqLR1pVbDw=",
      "PackageTypeId": "linux-arm64-gui.deb"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-gui.rpm",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-gui.rpm"
      ],
      "Length": 53723922,
      "MD5": "4prbnYhoV+gsFlOZQaQ+rg==",
      "SHA256": "jrnL8KH7tg0tdwGApIYKCjZxT7GqTJYW0weKrS2rTBY=",
      "PackageTypeId": "linux-arm64-gui.rpm"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-cli.zip",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-cli.zip"
      ],
      "Length": 66914578,
      "MD5": "35TYmhtV0iB8biqu/ooQKw==",
      "SHA256": "EhKRsAfngNuXGMuYH9fb/PLo1i8ee2fi7ql+FN8ONKk=",
      "PackageTypeId": "linux-arm64-cli.zip"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-cli.deb",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-cli.deb"
      ],
      "Length": 65810106,
      "MD5": "rXkI+xxO7ch2kkUn2dI8Dg==",
      "SHA256": "3j/ZKr8EpGfUuonsZUjRu9pvlXlG+WYhJbDgUeXyLNI=",
      "PackageTypeId": "linux-arm64-cli.deb"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-cli.rpm",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-linux-arm64-cli.rpm"
      ],
      "Length": 48113005,
      "MD5": "lshCxYf3drVkp+SJsZCSUg==",
      "SHA256": "79hH3TBVJDtsNa4+thj5JRI583j+0hs99V0i+SRd/W8=",
      "PackageTypeId": "linux-arm64-cli.rpm"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-osx-x64-gui.dmg",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-osx-x64-gui.dmg"
      ],
      "Length": 84780486,
      "MD5": "WxtsaSsksnsJzfKReP4XLg==",
      "SHA256": "xO+4UOlAXkRP8fx/WvSAWedrk7zaKBqZWuU48GLQRzQ=",
      "PackageTypeId": "osx-x64-gui.dmg"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-osx-x64-gui.pkg",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-osx-x64-gui.pkg"
      ],
      "Length": 82600448,
      "MD5": "qm6+pqB9ukX1zGhbVB995g==",
      "SHA256": "fNd2jz2CNFr8JzrsIVwfjsqPgGun0Us0hmhAbembx38=",
      "PackageTypeId": "osx-x64-gui.pkg"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-osx-arm64-gui.dmg",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-osx-arm64-gui.dmg"
      ],
      "Length": 81997487,
      "MD5": "VeIqvMeHY+S/ugtRyaL4Sw==",
      "SHA256": "Y4e2yxuEconuyDBmaqwvUiDniawSMP24T2vLQqaMczo=",
      "PackageTypeId": "osx-arm64-gui.dmg"
    },
    {
      "RemoteUrls": [
        "https://updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-osx-arm64-gui.pkg",
        "https://alt.updates.duplicati.com/canary/duplicati-2.0.9.107_canary_2024-09-11-osx-arm64-gui.pkg"
      ],
      "Length": 79794359,
      "MD5": "9Phj33mKzPf2fAOGiyn/fA==",
      "SHA256": "l1eC/ybMU6KtcyHCSIgPzIfS6UGIBZO1TajYYQqsMOE=",
      "PackageTypeId": "osx-arm64-gui.pkg"
    }
  ],
  "GenericUpdatePageUrl": "https://duplicati.com/download-dynamic?channel=canary&from=2.0.9.107"
}

This combination of things seems incorrect, although I’m not positive it’s a new issue.

I think that is perhaps the reason for most of the problems. The list of log-levels is loaded from the server, but since some systeminfo fails to load (due to the AWS error) it never gets any data.

I am a bit suspicious if this is perhaps another one of the infamous MSI update issues where it does not really install the updated file. Can you try to uninstall and install?

Found and fixed this issue:

This is still a problem with the options for the TrayIcon+Server, it accepts any options but they may be ignored.

Great find! It was lost in a merge conflict with the SSL certificate update.
Fix is here:

Are the messages I logged on a Linux machine the same? Release: 2.0.9.109 (Canary) 2024-11-06 - #9 by Taomyn

I can still try an uninstall/reinstall, but if the same is happening in Linux not sure that would be the MSI installer.

I noticed this as well on my Debian 13 machine. Also the Tray Icon never appears.

I’m unable to edit any backup jobs on any OS version - tried to reschedule a job and the save button does nothing.

No, the Windows machine complains about something with loading an AWS library, the Linux machine crashes when reading log lines. I think the Windows machine will eventually crash on reading the log lines, if the AWS issue is fixed.

The slowness happens in the AWS Secrets Manager provider where something related to the configuration is causing network requests. I think it is trying to figure out what region the machine is in, which is helpful, but not implemented in a very useable manner.

Thanks for reporting, I will investigate. May be related to the slow loading. If you have developer console in the browser, can you see any error messages?

Ok, I will try a reinstall on a Windows machine and let you know, including if that also fixes the save issue and if not check the browser console.

I can reproduce the save issue. It happens if the systeminfo is not loaded in the browser.
The indication you found is the version field is slow to load.
On my machine it can take up to 10 seconds to load, but it depends on network, so may be slower.

If the systeminfo is not loaded, I can navigate to the save button and click it, but nothing happens.
If I wait ~8 seconds to get the systeminfo loaded, the button works as expected.

Console log:

TypeError: Cannot read properties of undefined (reading 'Key')
    at n.builduri (backupEditUri.js?v=2.0.0.7:23:63)
    at checkForValidBackupDestination (EditBackupController.js?v=2.0.0.7:415:20)
    at EditBackupController.js?v=2.0.0.7:489:17
    at checkForChangedPassphrase (EditBackupController.js?v=2.0.0.7:409:17)
    at $scope.save (EditBackupController.js?v=2.0.0.7:488:13)
    at fn (eval at compile (angular.js:13145:15), <anonymous>:4:203)
    at f (angular.js:23298:17)
    at n.$eval (angular.js:15846:16)
    at n.$apply (angular.js:15945:18)
    at HTMLInputElement.<anonymous> (angular.js:23303:17)

I can confirm that the icon does not appear on Debian 12.5, but I think 12.7 is the latest release?

It looks like there are some things missing in Debian Gnome, so these steps are required:

sudo apt install gnome-shell-extension-appindicator

Reboot and run:

gnome-extensions enable ubuntu-appindicators@ubuntu.com

(Taken from this page)

With 2.0.9.108 it works, but with 2.0.9.109 it crashes with a problem in Tmds:

Unexpected error: Tmds.DBus.Protocol.DisconnectedException: Object reference not set to an instance of an object.
 ---> System.NullReferenceException: Object reference not set to an instance of an object.
   at Tmds.DBus.Protocol.MessageWriter.WriteRaw(String data)
   at Tmds.DBus.Protocol.MessageWriter.WriteStringCore(String s)
   at Tmds.DBus.Protocol.MessageWriter.WriteString(String value)
   at Tmds.DBus.SourceGenerator.VariantWriter.WriteDBusItem(MessageWriter& writer, DBusItem value)
   at Tmds.DBus.SourceGenerator.VariantWriter.WriteDBusVariant(MessageWriter& writer, DBusVariantItem value)
   at Tmds.DBus.SourceGenerator.WriterExtensions.WriteDictionary_aesv(MessageWriter& writer, Dictionary`2 values)
   at Tmds.DBus.SourceGenerator.OrgKdeStatusNotifierItem.<>c__DisplayClass21_0.<HandleMethodAsync>g__Reply|13()
   at Tmds.DBus.SourceGenerator.OrgKdeStatusNotifierItem.HandleMethodAsync(MethodContext context)
   at Tmds.DBus.Protocol.DBusConnection.HandleMessages(Exception exception, Message message)
   --- End of inner exception stack trace ---
   at Tmds.DBus.Protocol.DBusConnection.MyValueTaskSource`1.System.Threading.Tasks.Sources.IValueTaskSource.GetResult(Int16 token)
   at Tmds.DBus.Protocol.DBusConnection.CallMethodAsync(MessageBuffer message)
   at Tmds.DBus.Protocol.Connection.CallMethodAsync(MessageBuffer message)
   at Avalonia.FreeDesktop.DBusTrayIconImpl.CreateTrayIcon()
   at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)
   at Avalonia.Threading.SendOrPostCallbackDispatcherOperation.InvokeCore()
   at Avalonia.Threading.DispatcherOperation.Execute()
   at Avalonia.Threading.Dispatcher.ExecuteJob(DispatcherOperation job)
   at Avalonia.Threading.Dispatcher.ExecuteJobsCore(Boolean fromExplicitBackgroundProcessingCallback)
   at Avalonia.Threading.Dispatcher.Signaled()
   at Avalonia.X11.X11PlatformThreading.CheckSignaled()
   at Avalonia.X11.X11PlatformThreading.RunLoop(CancellationToken cancellationToken)
   at Avalonia.Threading.DispatcherFrame.Run(IControlledDispatcherImpl impl)
   at Avalonia.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at Avalonia.Threading.Dispatcher.MainLoop(CancellationToken cancellationToken)
   at Avalonia.Controls.ApplicationLifetimes.ClassicDesktopStyleApplicationLifetime.Start(String[] args)
   at Duplicati.GUI.TrayIcon.AvaloniaRunner.Run(String[] args)
   at Duplicati.GUI.TrayIcon.TrayIconBase.Init(String[] args)
   at Duplicati.GUI.TrayIcon.AvaloniaRunner.Init(String[] args)
   at Duplicati.GUI.TrayIcon.Program.StartTray(String[] _args, Dictionary`2 options, HostedInstanceKeeper hosted, String password, String acceptedHostCertificate)

My best guess is that this is caused by Tmds being used both by the libSecret and Avalonia, and the two are using different versions.

I switched from.208 to.209. Not sure if this has something to do with the previous one, but on my Windows machine, opening the web interface brings up an error message and the logs cannot be opened.

Editing the jobs is only partially possible – the destination and source data remain empty, while the schedule and options display values.

However, the backup seems to work.


I reinstalled on my Windows server and those event log messages have gone. However, I think the MSI installer is broken again as this is what I saw when I went to uninstall it

I removed .108 then .109 and ran my MSI installer script again which runs it with the parameter "FORSERVICE=“true” and it looks fine now

I can also confirm that the when systeminfo is not loaded I cannot make changes to the jobs, but once it loads then jobs can be edited again.