Have you made any manual changes to your GameData folder (i.e., not via CKAN)?
Don't think so
Describe the bug
when I launch CKAN, I get 2 windows that pop up with error messages. I'll copy paste each block of text below. Any help would be appreciated.
Screenshots (if applicable)
CKAN error code (if applicable):
2884 [1] ERROR CKAN.RegistryManager (null) - Uncaught exception loading registry: Newtonsoft.Json.JsonReaderException: Unterminated string. Expected delimiter: ". Path 'available_modules.USI-FTT.module_version['0.6.1.0'].download', line 873222, position 2265787.
at Newtonsoft.Json.JsonTextReader.ReadStringIntoBuffer(Char quote)
at Newtonsoft.Json.JsonTextReader.ParseValue()
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.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, 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.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.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, 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.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.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at CKAN.RegistryManager.Load()
at CKAN.RegistryManager.LoadOrCreate()
Usually this means your <KSP folder>/CKAN/registry.json file is corrupted. Make a backup of that file just in case, then try removing it and starting CKAN. It should be regenerated, but you'll lose the info about which mods you had installed.
However, it's suspicious that this just started happening for you after the new version was released. Did you install CKAN v1.29.0 before this happened?
That worked to get CKAN open. Although, like you said would happen, none of the mods I had installed are checked now. Should I just try to remember what mods I had and recheck each one?
As far as when I last updated CKAN...I'm not sure. Pretty sure I have it set to check for updates manually, but I'm not entirely sure. CKAN was working fine yesterday though.
I actually just noticed that CKAN actually does now have all my installed mods listed, but instead of having a checkbox nest to each one. It now has the letters "AD" where the checkboxes used to be.
Right, the mod files will all still be there, but CKAN forgot that it installed them, so it will treat them as if you had installed them by hand. You might be able to recover by clicking each mod in turn and checking the checkbox for the appropriate version in the Versions tab at the right; apologies for how tedious that will be, but there's unfortunately no other way to get the actual data back.
As far as when I last updated CKAN...I'm not sure.
Does the application title bar say "v1.28.0" or "v1.29.0"?
Okay, I'll try that. I'm just glad it's fixed. Title bar says it's 1.29.0. and my ksp version is 1.10.1.2939
Hypothesis pasted from Discord: Maybe it's possible to have a registry auto-update and a CKAN version auto-update simultaneously? And maybe that can corrupt the registry?
Will need to dig up previous instances of registry corruption and see how they correlate with CKAN releases...
Game launches fine now, all my mods seem to be working also.
Really appreciate the help. I've been using CKAN for months now and this is the only issue i've had so far. Thanks again!
Most helpful comment
Game launches fine now, all my mods seem to be working also.
Really appreciate the help. I've been using CKAN for months now and this is the only issue i've had so far. Thanks again!