diff --git a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetPackageManifestRequestHandler.cs b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetPackageManifestRequestHandler.cs index 284f3e2d..f89b0919 100644 --- a/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetPackageManifestRequestHandler.cs +++ b/src/PepperDash.Essentials.Core/Web/RequestHandlers/GetPackageManifestRequestHandler.cs @@ -186,8 +186,11 @@ public class GetPackageManifestRequestHandler : WebApiBaseRequestHandler } } - // Configured but not currently loaded - pass through unchanged - mergedPackages.AddRange(configPackages.Where(p => !matchedConfigPackages.Contains(p))); + // Configured but not currently loaded - pass through unchanged, but keep the same + // "never emit an entry with no version" guarantee as the loaded-reflection branch above - + // otherwise this branch reintroduces the schema issue that guard is meant to prevent. + mergedPackages.AddRange(configPackages.Where(p => + !matchedConfigPackages.Contains(p) && !string.IsNullOrEmpty(p.Version))); result.Packages = mergedPackages; }