WinPaletter icon indicating copy to clipboard operation
WinPaletter copied to clipboard

:x: [Error] Newtonsoft.Json.JsonReaderException (1.0.8.5, Beta, Build: Debug)

Open valsamis-d opened this issue 1 year ago • 5 comments

:x: Error report

Describe the error

Upon starting WinPaletter I got an exception. Details in the log below. Clicking on "Continue" looks like bypassing the error but WinPaletter window is completely blank and doesn't load.

How to reproduce the error

Just download an execture WinPaletter v1.0.8.5 Beta, either Release of Debug build/

WinPaletter Log

//General information
//...........................................................
   Report.Date = "Τρίτη, 20 Φεβρουαρίου 2024 11:59:02";
   OS = "Windows 11, 10.0.22631.3085, 64-bit";
   WinPaletter.Version = "1.0.8.5, Beta, Build: Debug";
   WinPaletter.Language = "English";
   WinPaletter.Debugging = false;

//Error details
//...........................................................
   Exception.message = "Unexpected character encountered while parsing value: {. Path 'profiles.list[3].colorScheme', line 80, position 17.";
   Exception.type = "Newtonsoft.Json.JsonReaderException";
   Exception.stack.trace =
   {
         at Newtonsoft.Json.JsonTextReader.ReadStringValue(ReadType readType)
         at Newtonsoft.Json.JsonTextReader.ReadAsString()
         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.ResolvePropertyAndCreatorValues(JsonObjectContract contract, JsonProperty containerProperty, JsonReader reader, Type objectType)
         at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObjectUsingCreatorWithParameters(JsonReader reader, JsonObjectContract contract, JsonProperty containerProperty, ObjectConstructor`1 creator, 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.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
         at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
         at WinPaletter.WinTerminal..ctor(String File, Mode Mode, Version Version)
         at WinPaletter.Theme.Manager..ctor(Source Source, String File, Boolean ignoreExtractionThemePack, Boolean ignoreErrors)
         at WinPaletter.Program.LoadThemeManager()
         at WinPaletter.Program.InitializeApplication(Boolean showLoginDialog)
         at WinPaletter.User.OnUserSwitch(UserChangeEventArgs e)
         at WinPaletter.User.set_SID(String value)
         at WinPaletter.UserSwitch.Button1_Click(Object sender, EventArgs e)
         at System.Windows.Forms.Control.OnClick(EventArgs e)
         at WinPaletter.UI.WP.Button.OnClick(EventArgs e)
         at System.Windows.Forms.Button.PerformClick()
         at System.Windows.Forms.Control.OnDoubleClick(EventArgs e)
         at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
         at System.Windows.Forms.Control.WndProc(Message& m)
         at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   };
   Exception.target.void_function = "Newtonsoft.Json.ReadStringValue()";
   Exception.assembly = "Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed";
   Exception.assembly.file = "";
   Exception.HRESULT = -2146233088;
   Win32.exception.message = "The operation completed successfully";
   Exception.type = "System.ComponentModel.Win32Exception";
   Win32.exception.Marshal.GetLastWin32Error = 1400;

Screenshots/Screen records

Blank WinPaletter window after clicking "Continue" XagXv5M8bH

valsamis-d avatar Feb 20 '24 10:02 valsamis-d

There is something wrong in a character in setting.json file of Windows Terminal.

Can you give me a copy of settings file of both Windows Terminal and Windows Terminal Preview?

Abdelrhman-AK avatar Feb 20 '24 10:02 Abdelrhman-AK

Windows_Terminal_Preview_Settings.json has another structure for color scheme for profile PowerShell 7

                "colorScheme": 
                {
                    "light": "Campbell"
                },

Open it, change this into

                "colorScheme": "Campbell",

save and then reopen WinPaletter. This will solve the issue.

⚠️ This is a temporary solution till I fix this issue, and I recommend you to backup settings JSONs files to avoid undesired actions in the newly modified Windows Terminal structures in WinPaletter.

Abdelrhman-AK avatar Feb 20 '24 13:02 Abdelrhman-AK

Perfect! I was able to open the new WinPaletter! Thanks @Abdelrhman-AK !

valsamis-d avatar Feb 20 '24 14:02 valsamis-d

You're welcome!

Abdelrhman-AK avatar Feb 20 '24 15:02 Abdelrhman-AK