Lacro59 / playnite-howlongtobeat-plugin

This plugin shows HowLongToBeat data in Playnite.
https://playnite.link
MIT License
104 stars 14 forks source link

Extension "HowLongToBeat" failed to load properly. #195

Closed Remco32 closed 9 months ago

Remco32 commented 9 months ago

For a couple of months now, I've had this issue where the addon stopped working.

The error I'm getting is merely "Extension failed to load properly".

image

Addon version: 3.1.2 Playnite version: 10.20 Theme: Helium 1.53

EDIT: Relevant log:

07-01 15:16:09.085|ERROR|ExtensionFactory:Failed to load plugin: HowLongToBeat System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> Newtonsoft.Json.JsonReaderException: Unterminated string. Expected delimiter: ". Path 'Storefronts[25].SourceId', line 145, position 44. at Newtonsoft.Json.JsonTextReader.ReadStringIntoBuffer(Char quote) at Newtonsoft.Json.JsonTextReader.ParseValue() at Newtonsoft.Json.JsonTextReader.Read() at Newtonsoft.Json.JsonReader.ReadForType(JsonContract contract, Boolean hasConverter) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) 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.PopulateList(IList list, JsonReader reader, JsonArrayContract contract, JsonProperty containerProperty, String id) at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id) 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.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue) 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.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent) at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType) at Newtonsoft.Json.JsonSerializer.Deserialize[T](JsonReader reader) at Playnite.Common.Serialization.FromJsonStream[T](Stream stream) in C:\projects\playnite\source\Playnite\Common\Serialization.cs:line 343 at Playnite.Common.Serialization.FromJsonFile[T](String filePath) in C:\projects\playnite\source\Playnite\Common\Serialization.cs:line 394 at Playnite.Common.DataSerializer.FromJsonFile[T](String filePath) in C:\projects\playnite\source\Playnite\Common\Serialization.cs:line 90 at Playnite.SDK.Data.Serialization.FromJsonFile[T](String filePath) in C:\projects\playnite\source\PlayniteSDK\Data\DataSerialization.cs:line 478 at Playnite.SDK.Plugins.Plugin.LoadPluginSettings[TSettings]() in C:\projects\playnite\source\PlayniteSDK\Plugins\Plugin.cs:line 353 at HowLongToBeat.HowLongToBeatSettingsViewModel..ctor(HowLongToBeat plugin) in D:\GitHub\Lacro59\playnite-howlongtobeat-plugin\source\HowLongToBeatSettings.cs:line 392 --- End of inner exception stack trace --- at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) at System.Activator.CreateInstance(Type type, Object[] args) at System.ObjectExtensions.CrateInstance[T](Type type, Object[] parameters) in D:\GitHub\Lacro59\playnite-howlongtobeat-plugin\source\playnite-plugincommon\CommonPlayniteShared\Common\Extensions\ObjectExtensions.cs:line 37 at CommonPluginsShared.PlayniteExtended.PlaynitePlugin1..ctor(IPlayniteAPI api) in D:\GitHub\Lacro59\playnite-howlongtobeat-plugin\source\playnite-plugincommon\CommonPluginsShared\PlayniteExtended\PluginExtended.cs:line 129 at CommonPluginsShared.PlayniteExtended.PluginExtended2..ctor(IPlayniteAPI api) in D:\GitHub\Lacro59\playnite-howlongtobeat-plugin\source\playnite-plugincommon\CommonPluginsShared\PlayniteExtended\PluginExtended.cs:line 28 at HowLongToBeat.HowLongToBeat..ctor(IPlayniteAPI api) in D:\GitHub\Lacro59\playnite-howlongtobeat-plugin\source\HowLongToBeat.cs:line 39

Lacro59 commented 9 months ago

The issue is surely with the config.json. Can you post your your configuration file in ExtensionsData\e08cd51f-9c9a-4ee3-a094-fde03b55492f\config.json?

Remco32 commented 9 months ago

The issue is surely with the config.json. Can you post your your configuration file in ExtensionsData\e08cd51f-9c9a-4ee3-a094-fde03b55492f\config.json?

config.json

Lacro59 commented 9 months ago

Your configuration is partially corrupted. I fixed it : config.json Can you try it?

Remco32 commented 9 months ago

Your configuration is partially corrupted. I fixed it : config.json Can you try it?

Works again now, thank you very much!