Backwards compatibility of Octopus Deploy Command Line Tool

Hi Octopus Devs,

I saw that yesterday/today a new version of Octopus Deploy was released (v3.4) and with it new command line tools were also released. Currently we make use of Cake which in turn always pulls the latest version of the OctoTools and since yesterday, we lost the ability to create new releases. When I look at the logs, our last successful automatic release creation was using v3.3 of the tools and the failing releases are using v3.4 so we have strong reasons to believe backwards compatibility was broken there, since nothing else has changed on our side in these past couple of days.

We currently still run a v3.3.18 Octopus Deploy and we get the following error when attempting to programmatically create a release:

Octopus Deploy Command Line Tool, version 3.4.0+Branch.master.Sha.5274ddf4f0befc951b424b092b45154ad1b167f7

Handshaking with Octopus server: https://xxxxxxxxxxx:9090
Handshake successful. Octopus version: 3.3.18; API version: 3.0.0
Authenticated as: "xxxxxxxxxxxxxxxxx ""
This Octopus Server “supports” channels
Finding project: xxxxxxxxxxxxxxxx
Automatically selecting the best channel for this release…
Building a release plan for Channel ‘Default’…
Finding deployment process…
Finding release template…

System.ArgumentNullException: Value cannot be null.
Parameter name: key
at System.Collections.Generic.Dictionary2.FindEntry(TKey key) at System.Collections.Generic.Dictionary2.TryGetValue(TKey key, TValue& value)
at Octopus.Cli.Commands.PackageVersionResolver.ResolveVersion(String stepName)
at Octopus.Cli.Commands.ReleasePlan.<>c__DisplayClass1_0.<.ctor>b__0(ReleaseTemplatePackage p)
at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext() at System.Linq.Buffer1…ctor(IEnumerable1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
at Octopus.Cli.Commands.ReleasePlan…ctor(ProjectResource project, ChannelResource channel, ReleaseTemplateResource releaseTemplate, IPackageVersionResolver versionResolver)
at Octopus.Cli.Commands.ReleasePlanBuilder.Build(IOctopusRepository repository, ProjectResource project, ChannelResource channel, String versionPreReleaseTag)
at Octopus.Cli.Commands.CreateReleaseCommand.AutoSelectBestReleasePlanOrThrow(ProjectResource project)
at Octopus.Cli.Commands.CreateReleaseCommand.BuildReleasePlan(ProjectResource project)
at Octopus.Cli.Commands.CreateReleaseCommand.Execute()
at Octopus.Cli.Commands.ApiCommand.Execute(String[] commandLineArguments)
at Octopus.Cli.Program.Main(String[] args)
Exit code: -3

Seeing as this is a minor release (3.3 -> 3.4), is it expected to have broken backwards compatibility?


Hi Tiago,

Thanks for getting in touch! That’s right, you should expect octo.exe 3.4.x to be compatible with Octopus 3.3.x. We’ve fixed this exact issue in octo.exe which shipped earlier today as octo.exe 3.4.1.

Thanks so much for reporting the issue quickly and I’m really sorry this compatibility issue leaked through and affected you.

Hope that helps!

Cool stuff! Thanks for the quick fix :slight_smile: I can confirm that with version 3.4.1 it works with our 3.3.18 server!

Hi Tiago,

Nice work and thanks for getting back to us!

Happy Deployments!