Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login

    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!

    Cargo feed returning 500 Internal Server Error

    Scheduled Pinned Locked Moved Support
    cargoerror 500proget
    3 Posts 2 Posters 19 Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J Offline
      joris.guex
      last edited by

      We are using Proget 26.0.2 and have configured a Cargo feed connected to https://index.crates.io.
      From most crates it is behaving as expected, but we are having specific issues with the libssh2-sys crate.

      We are seeing behaviour where cargo build will error because Proget will return 500 Internal Server Error during the download:

      $ cargo build
      ...
      error: failed to get `libssh2-sys` as a dependency of package `ssh2 v0.9.5`
      
      Caused by:
        download of li/bs/libssh2-sys failed
      
      Caused by:
        failed to get successful HTTP response from `https://<PROGET_URL>/repository/cargo-proxy/li/bs/libssh2-sys` (<PROGET_IP>), got 500
      

      We have managed to reproduce this issue with a few simple curl commands.

      First we download the crate information which returns 200 OK as expected:

      $ curl -I https://${PROGET_URL}/repository/cargo-proxy/li/bs/libssh2-sys
      HTTP/1.1 200 OK
      Server: nginx/1.31.1
      Date: Thu, 04 Jun 2026 07:50:47 GMT
      Content-Type: text/plain
      Content-Length: 115448
      Connection: keep-alive
      Keep-Alive: timeout=5
      Cache-Control: private
      Last-Modified: Thu, 04 Jun 2026 07:50:47 GMT
      X-ProGet-Version: 26.0.2.16
      X-ProGet-Edition: enterprise
      

      Then we download the latest version of the crate which returns 200 OK as expected:

      $ curl -I https://${PROGET_URL}/cargo/cargo-proxy/crates/libssh2-sys/0.3.1/download
      HTTP/1.1 200 OK
      Server: nginx/1.31.1
      Date: Thu, 04 Jun 2026 07:51:26 GMT
      Content-Type: application/octet-stream
      Content-Length: 582851
      Connection: keep-alive
      Keep-Alive: timeout=5
      Cache-Control: private
      Last-Modified: Sat, 01 Feb 2025 17:13:17 GMT
      X-ProGet-Version: 26.0.2.16
      X-ProGet-Edition: enterprise
      Content-Disposition: attachment; filename="libssh2-sys-0.3.1.crate"
      

      But then when we try and download the crate information again, it returns 500 Internal Server Error which is not expected.

      $ curl -I https://${PROGET_URL}/repository/cargo-proxy/li/bs/libssh2-sys
      HTTP/1.1 500 Internal Server Error
      Server: nginx/1.31.1
      Date: Thu, 04 Jun 2026 07:52:42 GMT
      Content-Type: application/json
      Content-Length: 1948
      Connection: keep-alive
      Keep-Alive: timeout=5
      Cache-Control: private
      Last-Modified: Thu, 04 Jun 2026 07:52:42 GMT
      

      The full error returned is as follows:

      $ curl -s https://${PROGET_URL}/repository/cargo-proxy/li/bs/libssh2-sys | jq -r '.errors[0].detail'
      The given key was not present in the dictionary.
      System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
         at Inedo.ProGet.Feeds.Cargo.CargoMetadata.<.ctor>g__getDependency|3_4(KeyValuePair`2 dependency) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E655333\Src\src\ProGet\Feeds\Cargo\CargoMetadata.cs:line 152
         at System.Linq.Enumerable.SelectManySingleSelectorIterator`2.MoveNext()
         at Inedo.ProGet.WebApplication.FeedEndpoints.Cargo.CargoIndexHandler.ProcessRequestAsync(AhHttpContext context, WebApiContext apiContext, CargoFeed feed, String relativeUrl) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E655333\Src\src\ProGet\WebApplication\FeedEndpoints\Cargo\CargoIndexHandler.cs:line 106
         at Inedo.ProGet.WebApplication.FeedEndpoints.Cargo.CargoIndexHandler.ProcessRequestAsync(AhHttpContext context, WebApiContext apiContext, CargoFeed feed, String relativeUrl) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E655333\Src\src\ProGet\WebApplication\FeedEndpoints\Cargo\CargoIndexHandler.cs:line 89
         at Inedo.ProGet.WebApplication.FeedEndpoints.Cargo.CargoFeedHandler.ProcessRequestAsync(AhHttpContext context, WebApiContext apiContext, CargoFeed feed, String relativeUrl) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E655333\Src\src\ProGet\WebApplication\FeedEndpoints\Cargo\CargoFeedHandler.cs:line 107
         at Inedo.ProGet.WebApplication.FeedEndpoints.CanonicalFeedHandler`1.Inedo.Web.IHttpAsyncHandler.ProcessRequestAsync(AhHttpContext context) in C:\Users\builds\AppData\Local\Temp\InedoAgent\BuildMaster\192.168.44.60\Temp\_E655333\Src\src\ProGet\WebApplication\FeedEndpoints\CanonicalFeedHandler.cs:line 85
      

      Going into the Cargo feed and clicking "Delete Cached Crate" temporarily fixes the issue but it happens again after the next download.

      atrippA 1 Reply Last reply Reply Quote 0
      • atrippA Offline
        atripp inedo-engineer @joris.guex
        last edited by

        Hi @joris-guex ,

        Thanks for the detailed information; I was able to reproduce the error pretty easily thanks to that.

        It seems to be happening when parsing a Dependency entry in the .toml file (missing version), but I can't figure out why since the version appears to be there. It also shouldn't cause this beahvior for this particular error.

        In any case, we'll get it fixed via PG-3303 in an upcoming maintenance release. !

        Cheers,
        Alana

        J 1 Reply Last reply Reply Quote 0
        • J Offline
          joris.guex @atripp
          last edited by

          Hi @atripp,

          We have now updated to ProGet 2026.3 and can confirm this is now working as expected. Thank you for your prompt help.

          1 Reply Last reply Reply Quote 0

          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

          With your input, this post could be even better 💗

          Register Login
          • 1 / 1
          • First post
            Last post
          Inedo Website Home • Support Home • Code of Conduct • Forums Guide • Documentation