Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

Large Chocolatey package upload is failing



  • I have a Chocolatey package that's ~7GB in size and I can't get it to upload using the web UI or by using the choco binary. Looking at the network traffic, it seems to stop dead at ~2GB in size through the web interface, which I'm assuming must be a limit imposed somewhere. What's not clear is if that same limit is imposed on Chocolatey because the choco binary just waits indefinitely and never finishes uploading the package.

    I also tried using nuget.exe which eventually times out with:

    Response status code does not indicate success: 400 (There must be exactly one package.).

    This is rather confusing as I am only pushing a single .nupkg file.

    What settings do I need to adjust to support uploading larger Chocolatey packages?



  • I tried increasing the value in Web.cfg at this location:

    <httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" maxRequestLength="1342177280" executionTimeout="86400" targetFramework="4.5" />
    

    I've bumped it to 10GB there, restarted the server, but found no difference. I see another setting here:

    <requestLimits maxAllowedContentLength="4294967295" maxQueryString="1048576" maxUrl="1048576" />
    

    But that's already set to 32 GB, so I don't think it's the culprit. I'm not using IIS and this appears to be the only web-related configuration I can find.


  • inedo-engineer

    @joshuagilman_1054 that's really large chocolatey file (nuget package), so you may want to rethink your approach. It'll cause some pain across the board, as you try to download and install that file as well. Instead, perhaps have your chocolatey package download an asset that you've stored in ProGet instead?

    In general, large files are tricky to publish over a single HTTP request reliably. This is across the board, even when uploading files to places like Amazon S3; those rely on a chunked uploading process... but the NuGet API doesn't support that.

    Otherwise, there's no limit imposed by ProGet itself, and you've found the settings that ASP.NET imposes. There could be some other limitation happening, but it's hard to say where; apparently it varies by operating system version, and it might even be middleware (like a proxy/firewall).

    The message "there must be exactly one package" is unexpected; I would instead expect 'request length exceed". In any case, that message just means that no valid files were attached to the request, which can happen if it was suddenly cut off.

    All told, when it comes to really large files (even asset directories), a Drop Path approach may be easiest to use.


Log in to reply
 

Inedo Website HomeSupport HomeCode of ConductForums GuideDocumentation