Exception at launch can be unclear for regular users
lg188 opened this issue ยท 0 comments
Describe the bug
I used SMAPI a while ago and recently decided to play the game again and updated it.
I got the latest version (3.18.6) from the website and used the Linux installer. I removed all mods to make sure it works on it's own but it does not.
The output implies there is a wrong value set in a config file, but it does not tell me which one.
If an action can resolve this issue, the user should be able to figure out what that action is. In this case there is no indicator at all.
To Reproduce
- Have old SMAPI version
- Update newer version
- (assumed) Have an incorrect config value somewhere
- crash on run without indicator.
Log file
SMAPI failed to initialize: Newtonsoft.Json.JsonSerializationException: Error converting value False to type 'System.Collections.Generic.HashSet`1[System.String]'. Path 'VerboseLogging', line 23, position 27.
---> System.ArgumentException: Could not cast or convert from System.Boolean to System.Collections.Generic.HashSet`1[System.String].
at Newtonsoft.Json.Utilities.ConvertUtils.EnsureTypeAssignable(Object value, Type initialType, Type targetType)
at Newtonsoft.Json.Utilities.ConvertUtils.ConvertOrCast(Object initialValue, CultureInfo culture, Type targetType)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
--- End of inner exception stack trace ---
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.EnsureType(JsonReader reader, Object value, CultureInfo culture, JsonContract contract, Type targetType)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Populate(JsonReader reader, Object target)
at Newtonsoft.Json.JsonSerializer.PopulateInternal(JsonReader reader, Object target)
at Newtonsoft.Json.JsonConvert.PopulateObject(String value, Object target, JsonSerializerSettings settings)
at StardewModdingAPI.Framework.SCore..ctor(String modsPath, Boolean writeToConsole, Nullable`1 developerMode) in E:\source\_Stardew\SMAPI\src\SMAPI\Framework\SCore.cs:line 198
at StardewModdingAPI.Program.Start(String[] args) in E:\source\_Stardew\SMAPI\src\SMAPI\Program.cs:line 215
at StardewModdingAPI.Program.Main(String[] args) in E:\source\_Stardew\SMAPI\src\SMAPI\Program.cs:line 42
Game has ended. Press any key to exit.