{"record":{"id":"be5ce2b21cb3b511","repo":"stride3d/stride","slug":"invalid-version-dependency-format-unable-to-decode-0","errorCode":null,"errorMessage":"Invalid version dependency format. Unable to decode [{0}]","messagePattern":"Invalid version dependency format\\. Unable to decode \\[(.+?)\\]","errorType":"validation","errorClass":"YamlException","httpStatus":null,"severity":"error","filePath":"sources/assets/Stride.Core.Assets/Serializers/PackageVersionRangeSerializer.cs","lineNumber":25,"sourceCode":"\nnamespace Stride.Core.Assets.Serializers;\n\n/// <summary>\n/// A Yaml serializer for <see cref=\"PackageVersionRange\"/>\n/// </summary>\n[YamlSerializerFactory(YamlAssetProfile.Name)]\ninternal class PackageVersionRangeSerializer : AssetScalarSerializerBase\n{\n    public override bool CanVisit(Type type)\n    {\n        return typeof(PackageVersionRange).IsAssignableFrom(type);\n    }\n\n    public override object ConvertFrom(ref ObjectContext context, Scalar fromScalar)\n    {\n        if (!PackageVersionRange.TryParse(fromScalar.Value, out var versionRange))\n        {\n            throw new YamlException(fromScalar.Start, fromScalar.End, \"Invalid version dependency format. Unable to decode [{0}]\".ToFormat(fromScalar.Value));\n        }\n        return versionRange;\n    }\n\n    public override string ConvertTo(ref ObjectContext objectContext)\n    {\n        return objectContext.Instance.ToString()!;\n    }\n}\n","sourceCodeStart":7,"sourceCodeEnd":35,"githubUrl":"https://github.com/stride3d/stride/blob/96fad776d210c221682aac1ccdf4c79dc046fc38/sources/assets/Stride.Core.Assets/Serializers/PackageVersionRangeSerializer.cs#L7-L35","documentation":"PackageVersionRangeSerializer.ConvertFrom throws this when a YAML scalar for a package version range cannot be parsed by PackageVersionRange.TryParse. Version range dependencies in packages (e.g. '1.2.x', '>1.0 <2.0') must match the expected range syntax; anything else aborts package deserialization.","triggerScenarios":"Loading a .pkg or package YAML whose version-dependency range string does not conform to PackageVersionRange syntax: wrong operators, missing version numbers, extra whitespace/characters, or a typo like '>=x.y'.","commonSituations":"Hand-editing package dependency ranges; copying NuGet-style version specs that Stride's parser does not accept; migration from other package managers with different range grammars.","solutions":["Rewrite the version range using PackageVersionRange syntax (e.g. '1.2.0', '>=1.0.0 <2.0.0') at the reported line","Simplify the range to a single concrete PackageVersion string to test parsing","Consult existing package files for examples of accepted range formats","If you don't need a range, pin an exact version instead"],"exampleFix":"// before\nDependency: mypackage version: latest\n// after\nDependency: mypackage version: 1.2.0","handlingStrategy":"validation","validationCode":"if (PackageVersionRange.TryParse(rangeText, out var range)) { use(range); } else { fixOrSkip(rangeText); }","typeGuard":"bool IsValidVersionRange(string? s) => s != null && PackageVersionRange.TryParse(s, out _);","tryCatchPattern":"try { LoadPackage(file); } catch (YamlException ex) when (ex.Message.Contains(\"version dependency format\")) { log.Error($\"Invalid range in {file}: {ex.Message}\"); throw; }","preventionTips":["Copy range syntax from existing working .pkg files","Prefer exact versions over complex ranges when unsure","Lint package files in CI with PackageVersionRange.TryParse"],"tags":["yaml","versioning","packages","parsing"],"backgroundTag":"invalid-argument-format","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"}