Package version problem with semver

Running Octopus 3.3.2

I’m trying to upload a package with the following file name

It fails in the GUI with the following exception
System.ArgumentException: Invalid version string 1.0.0-0.3.7 Parameter name: version at Octopus.Client.Model.SemanticVersion.Parse(String version, Boolean preserveMissingComponents) in Y:\work\refs\tags\3.3.2\source\Octopus.Client\Model\SemanticVersion.cs:line 87 at Octopus.Core.Packages.Extraction.SimplePackageExtractor.GetIndexPackageData(String packageFile) in Y:\work\refs\tags\3.3.2\source\Octopus.Core\Packages\Extraction\SimplePackageExtractor.cs:line 54 at Octopus.Server.Web.Api.NuGet.PackagePushActionBase1.Execute() in Y:\work\refs\tags\3.3.2\source\Octopus.Server\Web\Api\NuGet\PackagePushActionBase.cs:line 59
at Octopus.Server.Web.Infrastructure.Api.Responder1.Respond(TDescriptor options, NancyContext context) in Y:\work\refs\tags\3.3.2\source\Octopus.Server\Web\Infrastructure\Api\Responder.cs:line 162 at System.Dynamic.UpdateDelegates.UpdateAndExecute3[T0,T1,T2,TRet](CallSite site, T0 arg0, T1 arg1, T2 arg2) at CallSite.Target(Closure , CallSite , Object , Object , NancyContext ) at Octopus.Server.Web.Api.OctopusRestApiModule.<>c__DisplayClass0_0.<.ctor>b__0(Object o) in Y:\work\refs\tags\3.3.2\source\Octopus.Server\Web\Api\OctopusRestApiModule.cs:line 46 at CallSite.Target(Closure , CallSite , Func2 , Object )
at Nancy.Routing.Route.<>c__DisplayClass4.b__3(Object parameters, CancellationToken context)`

and in the REST API I get a harsh HTTP 500 Internal Server Error.

This version string is taken straight from the SemVer 2.0 spec item #9

(My use case is somewhat simpler (1.0.0-xxx), but the result is the same.)


Currently Octopus uses the NuGet v2 libraries and that does not support full semver v2 so you can not use full stops in the tag of your version string. We are aiming to have NuGet v3 in our 3.4 release see

Regarding the 500 Error, could you please provide us with the API calls that you are using so we can replicate the issue as we don’t think it should be throwing that error.