The ...
was meant to stand for deleted lines, but yes there’s an informative stack trace too:
Exception Info: Duplicati.Library.Interface.UserInformationException: Server crashed on startup
---> System.Exception: A serious error occurred in Duplicati: Duplicati.Library.Interface.SettingsEncryptionKeyMissingException: Encryption key is missing.
at Duplicati.Library.Encryption.EncryptedFieldHelper.Decrypt(String value, KeyInstance key)
at Duplicati.Server.Database.Connection.DecryptSensitiveFields(String fieldValue, KeyInstance key)
at Duplicati.Server.Database.Connection.<GetSettings>b__27_0(IDataReader rd)
at Duplicati.Server.Database.Connection.Read[T](IDbCommand cmd, Func`2 f)+MoveNext()
at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
at Duplicati.Server.Database.Connection.ReadFromDb[T](Func`2 f, String sql, Object[] args)
at Duplicati.Server.Database.Connection.GetSettings(Int64 id)
at Duplicati.Server.Database.ServerSettings.ReloadSettings()
at Duplicati.Server.Database.ServerSettings..ctor(Connection con)
at Duplicati.Server.Database.Connection..ctor(IDbConnection connection, Boolean disableFieldEncryption, KeyInstance key)
at Duplicati.Server.Program.GetDatabaseConnection(Dictionary`2 commandlineOptions, Boolean silentConsole)
at Duplicati.Server.Program.Main(String[] _args)
---> Duplicati.Library.Interface.SettingsEncryptionKeyMissingException: Encryption key is missing.
at Duplicati.Library.Encryption.EncryptedFieldHelper.Decrypt(String value, KeyInstance key)
at Duplicati.Server.Database.Connection.DecryptSensitiveFields(String fieldValue, KeyInstance key)
at Duplicati.Server.Database.Connection.<GetSettings>b__27_0(IDataReader rd)
at Duplicati.Server.Database.Connection.Read[T](IDbCommand cmd, Func`2 f)+MoveNext()
at System.Collections.Generic.LargeArrayBuilder`1.AddRange(IEnumerable`1 items)
at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable`1 source)
at Duplicati.Server.Database.Connection.ReadFromDb[T](Func`2 f, String sql, Object[] args)
at Duplicati.Server.Database.Connection.GetSettings(Int64 id)
at Duplicati.Server.Database.ServerSettings.ReloadSettings()
at Duplicati.Server.Database.ServerSettings..ctor(Connection con)
at Duplicati.Server.Database.Connection..ctor(IDbConnection connection, Boolean disableFieldEncryption, KeyInstance key)
at Duplicati.Server.Program.GetDatabaseConnection(Dictionary`2 commandlineOptions, Boolean silentConsole)
at Duplicati.Server.Program.Main(String[] _args)
--- End of inner exception stack trace ---
at Duplicati.Server.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper.<>c__DisplayClass5_0.<.ctor>b__0(Object dummy_arg)
--- End of inner exception stack trace ---
at Duplicati.GUI.TrayIcon.HostedInstanceKeeper..ctor(String[] args)
at Duplicati.GUI.TrayIcon.Program.Main(String[] _args)
at Duplicati.GUI.TrayIcon.Net8.Program.<>c__DisplayClass0_0.<Main>b__0()
at Duplicati.Library.Crashlog.CrashlogHelper.WrapWithCrashLog[T](Func`1 method, String logdir, String applicationName)
at Duplicati.GUI.TrayIcon.Net8.Program.Main(String[] args)
It still seems a sequencing challenge that is not well documented. On Windows, the safest way to set initial Service Server password seems to me to be ServerUtil (then close that window), but it’s going to need the signin token method, so use that before disabling via DB encryption or Settings.
To return to topic, are we closer to finding this topic’s issue? I think I’m still waiting on @pheitman because we’re not sure the Service Server environment is set, and not sure of the total event log.