NuGet Proxy not able to list versions

I have a license for Hangfire Pro which gives me access to a private NuGet repo. I need my team to access it but don’t want us to all share the one password so I am using Nexus to proxy to the private repo with authentication. Now when I run: dotnet add package Hangfire.Pro, I get error: There are no versions available for the package 'Hangfire.Pro'. If I run dotnet add package Hangfire.Pro --version 3.0.0 it works fine.

I’ve tested directly to the private repo and it works as expected. What am I missing? This seems like a straight forward use case and setup.

Which version of NuGet are you trying to use for the proxy feed, v2 or v3?

My nexus feed is v3, the upstream source is also v3

What version of Nexus are you using? I can’t replicate this using NuGet repositories in 3.65.0-02

I just updated to v3.65.0-02 before this post hoping it was resolved. Been like this for about a year. I also have proxied with no issue which makes be think it related to authentication. Running:

nuget list -Source

fails and prompts for credentials. My nexus instance doesn’t requires credentials, just VPN

MSBuild auto-detection: using msbuild version '15.0' from '/Library/Frameworks/Mono.framework/Versions/6.12.0/lib/mono/msbuild/15.0/bin'.
The remote server indicated that the previous request was forbidden. Please provide credentials for:

If I input my Hangfire credentials it works. So it seems like Nexus isn’t passing them correctly.

Hangfire uses ProGet for their private feed; maybe a bug on their end but if I connect directly, it works as expected.


@mpiggott @jtom Do you guys remember this one? Was NEXUS-38122 on the old Jira board. Any updates from then?

Could be a bug on the ProGet side on how it’s receiving the authentication. In my very simple setup I have anonymous auth disabled in Nexus and a specific user account created.

I have created a v3 proxy repo with the upstream being just another nuget hosted repo on the same server. I configured the proxy to use my specific user account.

Using chocolatey I setup a new source without providing authentication to the source, and was able to both search and install a package through the proxied repo.

Now I know that’s not an apples to apples comparison but I think it proves “enough” things to help point the finger at someone else, and not Nexus.

Hi @jesse.mandel I pinged some others about the ticket when I saw this thread earlier. Likely it would make sense to open this in Issues · sonatype/nexus-public · GitHub

Ya, I can open it there, was hoping to confirm it’s really a Nexus issue first.

@steviecoaster Appreciate all the testing! If I understand correctly, the auth for both your Nexus instance and private feed are the same. Maybe that could be why it worked?

I didn’t specify before but I am running Nexus on Linux and access it from dotnet/nuget on MacOS. I hope the experience would be the same but it sounds like you’re using Windows.

I tried another test. I have a TeamCity server with a private NuGet feed. I set it up with a user/pass, added to my Nexus as a proxy and got the same results. Listing versions doesn’t work but installing specific ones does.

Another command to try: dotnet list package --outdated

Project `HangfireBackend` has the following updates to its packages
   Top-level Package       Requested   Resolved   Latest                  
   > Hangfire              1.8.2       1.8.2      1.8.11                  
   > Hangfire.Core         1.8.2       1.8.2      1.8.11                  
   > Hangfire.Pro          3.0.0       3.0.0      Not found at the sources

First two come from, Hangfire.Pro from ProGet via Nexus proxy

Seems to me like an issue with Nexus. I reported in GitHub OSS project too. Thanks for all the help!

No problem Jesse,

Unfortunately I’ve only got a single instance (and no time to build out a better lab for testing currently).

Perhaps advantageously, it looks like we’ve got a customer with Nexus PRO who is experiencing this issue, so I’m having them reach out to Sonatype support and am gonna jump on a call with them to grab some data as well. :slight_smile: