{"record":{"id":"cec1938bd7b04087","repo":"stride3d/stride","slug":"upgrading-package-dependentpackage-meta-name-to-use","errorCode":null,"errorMessage":"Upgrading package [{dependentPackage.Meta.Name}] to use [{dependencyPackage.Meta.Name}] from version [{dependentPackagePreviousMinimumVersion}] to [{dependencyPackage.Meta.Version}] is not supported","messagePattern":"Upgrading package \\[(.+?)\\] to use \\[(.+?)\\] from version \\[(.+?)\\] to \\[(.+?)\\] is not supported","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"sources/assets/Stride.Core.Assets/PackageSession.cs","lineNumber":1734,"sourceCode":"        var dependentPackagePreviousMinimumVersion = dependency.Version.MinVersion;\n        if (dependencyPackage.Meta.Version > dependentPackagePreviousMinimumVersion)\n        {\n            // Find upgrader for given package\n            // Note: If no upgrader is found, we assume it is still compatible with previous versions, so do nothing\n            var packageUpgrader = AssetRegistry.GetPackageUpgrader(dependencyPackage.Meta.Name);\n            if (packageUpgrader is not null)\n            {\n                // Check if upgrade is necessary\n                if (dependency.Version.MinVersion >= packageUpgrader.Attribute.UpdatedVersionRange.MinVersion)\n                {\n                    return null;\n                }\n\n                // Check if upgrade is allowed\n                if (dependency.Version.MinVersion < packageUpgrader.Attribute.PackageMinimumVersion)\n                {\n                    // Throw an exception, because the package update is not allowed and can't be done\n                    throw new InvalidOperationException($\"Upgrading package [{dependentPackage.Meta.Name}] to use [{dependencyPackage.Meta.Name}] from version [{dependentPackagePreviousMinimumVersion}] to [{dependencyPackage.Meta.Version}] is not supported\");\n                }\n\n                log.Info($\"Upgrading package [{dependentPackage.Meta.Name}] to use [{dependencyPackage.Meta.Name}] from version [{dependentPackagePreviousMinimumVersion}] to [{dependencyPackage.Meta.Version}] will be required\");\n                return packageUpgrader;\n            }\n        }\n\n        return null;\n    }\n\n    public class PendingPackageUpgrade : IEquatable<PendingPackageUpgrade>\n    {\n        public readonly PackageUpgrader PackageUpgrader;\n        public readonly PackageDependency Dependency;\n        public readonly Package DependencyPackage;\n        public readonly PackageVersionRange DependencyVersionBeforeUpgrade;\n\n        public PendingPackageUpgrade(PackageUpgrader packageUpgrader, PackageDependency dependency, Package dependencyPackage)","sourceCodeStart":1716,"sourceCodeEnd":1752,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/assets/Stride.Core.Assets/PackageSession.cs#L1716-L1752","documentation":"Thrown during package upgrade analysis when a dependency's version is below the minimum version required by the applicable IPackageUpgrader, meaning the upgrade cannot be performed automatically. The session aborts rather than producing a package with an unsupported dependency version.","triggerScenarios":"Calling PackageSession upgrade flows on a package whose dependency Version.MinVersion is lower than packageUpgrader.Attribute.PackageMinimumVersion.","commonSituations":"Opening an old project created with a much earlier engine version; a referenced dependency package predates the minimum supported version; skipping multiple major versions so no upgrader path exists.","solutions":["Upgrade the project in a supported stepwise path: first open it with the intermediate engine version that has a matching upgrader.","Manually edit the dependency's version in the package/project file to at least PackageMinimumVersion before loading.","Update or add a custom IPackageUpgrader that supports the old version range.","Restore a newer backup of the project where dependencies were already upgraded."],"exampleFix":"// before (old .sdpkg dependency)\n<Version>3.0.0.1</Version>\n// after — bump the dependency to the minimum supported version\n<Version>4.1.0.2</Version>","handlingStrategy":"try-catch","validationCode":"if (dependency.Version.MinVersion < requiredMinimumVersion)\n    log.Warn($\"Dependency {dependencyPackage.Meta.Name} v{dependency.Version} needs manual upgrade to >= {requiredMinimumVersion}\");","typeGuard":null,"tryCatchPattern":"try { session.UpgradePackage(...); }\ncatch (InvalidOperationException ex) when (ex.Message.Contains(\"is not supported\"))\n{\n    // fall back to stepwise upgrade with an older engine version or manual edit\n}","preventionTips":["Keep projects on a supported upgrade path (don't skip many major versions).","Audit dependency versions in .sdpkg files before engine upgrades.","Add custom IPackageUpgrader implementations for in-house legacy versions.","Keep backups so a failed upgrade can be rolled back."],"tags":["versioning","migration","packages"],"backgroundTag":"incompatible-source-type","analyzedSha":"96fad776d210c221682aac1ccdf4c79dc046fc38","analyzedAt":"2026-09-14T02:59:31.279Z","contentChangedAt":"2026-09-14T02:59:31.279Z","schemaVersion":2},"datasetVersion":"2026-09-15T23:17:13.987Z"}