Problem with pushing large Nuget package from Jenkins

Hi folks,

We’re getting the following error when trying to push a > 30MB Nuget package from Jenkins to the internal Octopus repository:

Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host.

For some reason, the package will push from my own machine with no errors (and quite quickly), but just refuses to work from Jenkins. (there are no errors at all in the Octopus server log)

Any ideas?

Hi Darren,

Thanks for getting in touch! Are you able to provide the full command and logs that you run from Jenkins?
Are you using exactly the same command from within Jenkins as you are locally?

Hopefully this will give us a clue of where to start looking.
Vanessa

Hi Vanessa,

The command we’re executing is:

c:\nuget\nuget.exe push “D:\jenkins\workspace\Microsites_01_getLatestBuild\BuildOutput*.nupkg” -ApiKey ******** -Source http://a0185-app2098-s/octopus/nuget/packages -Timeout 600

(The key is hidden here, but is valid, and is the same as I’m using when running exactly the same command locally).

Which logs do you want from Jenkins? Just the console output for this particular command?

See attached: note that the first time we run the command after waiting a while, we are getting a 503 error when trying to push the large file (the smaller ones work fine). It’s after then that we start getting that original error.

FirstTime.txt (617 Bytes)

I also tried splitting up the pushes of the 3 packages into 3 separate commands in Jenkins, attempting to push the biggest package first, followed by the 2 smaller ones. The results are even more bizarre (see attached).

SecondTime.txt (1 KB)

Apologies - ignore that last post. The 400 errors were because those two smaller packages had already pushed successfully.

And another quick followup - pushing the packages using the Powershell method from Jenkins works fine - it’s just calling nuget push that doesn’t.

Strange…

Hi Darren,

NuGet push has a couple of little bugs. 1. timeouts cannot be divisible by 30 and 2. it has a 30mb maximum size which needs to be updated.
There is a bit of a thread that mentions both: http://help.octopusdeploy.com/discussions/problems/184-30mb-default-maximum-nuget-package-size

Thus it working outside of NuGet push!
Please let me know if these do not fix your errors.
Vanessa

Thanks Vanessa.

Yes, we had looked at that thread before. Stupid question though - where is the Nuget server’s web.config located? We don’t have anything at all in IIS on our Octopus server…

Hi Darren,

You are totally right, we do not use Nuget.Server so it won’t be that. Can you try just changing your timeout to 601.
Let me know if that helps.

Vanessa

Tried making that change and no luck. :frowning:

Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host.

Hi Darren,

Can you ad -verbosity detailed to the end of your Nuget.exe push command line and see if we get any form of better detail on the error?
We are a bit out of ideas here, sorry.

Vanessa

Hi folks - apologies for the delay in responding (due to my account vanishing :slight_smile: ).

It looks like this one was caused by an old (ish) version of nugget.exe on our Jenkins server. Replacing it with the latest version resolved the issue.

Thanks!

Hi Darren,

Thanks for letting us know what the fix was!

Vanessa