diff --git a/src/DynamoCoreWpf/DynamoCoreWpf.csproj b/src/DynamoCoreWpf/DynamoCoreWpf.csproj index a0c5658494c..5cbf7d06310 100644 --- a/src/DynamoCoreWpf/DynamoCoreWpf.csproj +++ b/src/DynamoCoreWpf/DynamoCoreWpf.csproj @@ -94,7 +94,7 @@ - 0.0.27 + 0.0.28 PackageManagerWizard diff --git a/src/DynamoCoreWpf/Views/PackageManager/Components/PackageManagerWizard/PackageManagerWizard.xaml.cs b/src/DynamoCoreWpf/Views/PackageManager/Components/PackageManagerWizard/PackageManagerWizard.xaml.cs index 3ed0b62457a..6172f05f093 100644 --- a/src/DynamoCoreWpf/Views/PackageManager/Components/PackageManagerWizard/PackageManagerWizard.xaml.cs +++ b/src/DynamoCoreWpf/Views/PackageManager/Components/PackageManagerWizard/PackageManagerWizard.xaml.cs @@ -543,23 +543,30 @@ private async void SendPackageUpdates(PublishPackageViewModel vm) var jsonSerializer = Newtonsoft.Json.JsonSerializer.Create(jsonSerializerSettings); var rootObj = JObject.FromObject(payload, jsonSerializer); - // Include payload.versions[*].compatibility_matrix for the "Copy from" dropdown. - try + if (rootObj["payload"] is JObject payloadObj) { - var header = await TryGetPackageHeaderAsync(vm); - if (header != null) + // Present with safe defaults so the frontend always has a consistent shape + payloadObj["versions"] = new JArray(); + payloadObj["maintainers"] = new JArray(); + + try { - if (rootObj["payload"] is JObject payloadObj) + var header = await TryGetPackageHeaderAsync(vm); + if (header != null) { payloadObj["versions"] = header.versions != null - ? JToken.FromObject(header.versions, jsonSerializer) + ? JToken.FromObject(header.versions, jsonSerializer) + : new JArray(); + + payloadObj["maintainers"] = header.maintainers != null + ? JToken.FromObject(header.maintainers, jsonSerializer) : new JArray(); } } - } - catch (Exception ex) - { - LogMessage(ex); + catch (Exception ex) + { + LogMessage(ex); + } } var jsonPayload = rootObj.ToString(Newtonsoft.Json.Formatting.None);