<p>Very few people were viewing this thread, so afterwards I posted a duplicate question on <a href="https://stackoverflow.com/questions/60296233">Stack Overflow</a>, and now contains the answer. Below is a copy of it ...</p>

<p>Finally, I found the problem.  I wonder if this is a bug, or just poorly documented....(or maybe I just didn't interpret it correctly).</p>

<p>As per <a href="https://stackoverflow.com/a/60315376/4640431">Leo Lui-MSFT's suggestion</a> above (documented by Microsoft), I'd added the permissions to the NuGet feed, and this didn't work.  However, I was intrigued by his sentence:</p>

<blockquote>
  <p>If you've changed your builds to run at project scope</p>
</blockquote>

<p>Personally, I hadn't, so I got with our System Administrator and we went through all the possible settings.  Eventually, we found it - it wasn't something I had the ability to change.</p>

<p>So in my example above, BLUE and GREEN are the two projects that are trying to use the NuGet package in RED's Artifact feed.</p>

<p>So picking BLUE (or GREEN), in the bottom left hand corner of Azure DevOps you'll see a link "Project Settings".  Under "Pipelines > Settings" there are four settings.  We had to change the following to be:    </p>

<blockquote>
  <p>Limit job authorization scope to current project = false</p>
</blockquote>

<p>If the option is greyed out in the project, that's probably because it's enforced at organization level. In that case, you have to first change it in the organization, and <em>then change it in the project as well</em>.</p>

<p>Hope that helps!</p>

CC BY-SA 4.0
2020-02-24T07:30:08.547Z
2020-05-20T18:04:20.123Z
2020-05-20T18:04:20.123Z
DrGriff
<blockquote>
  <p>Updated 20th Feb &amp; 21st Feb</p>
</blockquote>

<p><strong>Summary</strong></p>

<p>Not able to find NuGet package from our private feed under Artifacts.</p>

<p><strong>Our Azure DevOps environment</strong></p>

<p>In Azure, we have our company "space": dev.azure.com/OurCompany</p>

<p>Under that, we have multiple Projects, so for example, imagine these three:</p>

<ul>
<li>Green: this holds applications of a certain type</li>
<li>Blue: this holds applications of a different type</li>
<li>Red: this holds our "common" helper code</li>
</ul>

<p><strong>RED</strong></p>

<p>RED holds all our common helper code are DLLs consumed by applications in GREEN and BLUE.  These are made available as NuGet packages.</p>

<p>Under RED's Artifacts, we see an "organisational scoped feed" called "OurCompany".  We understood that we couldn't use this because these NuGet packages need to be available to everyone in OurCompany, which means not only on Azure, but also on our DeskTop machines in our Corporate network (where we run Visual Studio).  The "organisational scoped feed" I don't think is exposed to our Corporate Network.</p>

<p>We therefore created a new Feed under RED's Artifacts.  When I view Permissions, I see the following entries:</p>

<ul>
<li>{me} : (Owner)</li>
<li>[OurCompany]\Project Collection Adminstrators : (Owner)</li>
<li>[RED]\Project Administrators : (Owner)</li>
<li>Project Collection Build Service (OurCompany) : (Contributor)</li>
<li>[RED]\Contributors (Contributor)</li>
<li>RED Build Service (OurCompany) : (Contributor)</li>
<li>BLUE Build Service (OurCompany) : (Contributor)</li>
</ul>

<p><strong>Corporate</strong></p>

<p>So, back in Corporate, we add the NuGet package feed to our Visual Studio and it can then pull the NuGet packages down from Azure.</p>

<p><strong>GREEN and BLUE</strong></p>

<p>In here we have our products.  We create a build Pipeline and we add a NuGet restore step:</p>

<pre><code>- task: NuGetCommand@2
  displayName: 'Restore for Our Application'
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'select'
    vstsFeed: '{Guid1}/{Guid2}'
</code></pre>

<p>The two Guids were filled in when we picket the Azure Artifacts feed from the drop-down.</p>

<p><strong>GREEN or BLUE NuGet Restore Failure</strong></p>

<p>So this is where we run into our issue.  When the NuGet restore step executes, it fails with the following message:</p>

<pre><code>Unable to find version 'nnnn.n.n' of package 'TheNuGetPackage'.
</code></pre>

<p>The log output is vast, but the salient lines appear to be:</p>

<pre><code>2020-02-18T18:36:35.2838118Z [command]C:\hostedtoolcache\windows\NuGet\5.4.0\x64\nuget.exe sources Add -NonInteractive -Name {Guid2} -Source https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json
-ConfigFile d:\a\1\Nuget\tempNuGet_356.config 2020-02-18T18:36:35.7513495Z Package source with Name: {Guid2} added successfully. 2020-02-18T18:36:41.1671856Z     [CredentialProvider.183638]Command-line v0.1.20+a5d37185a1a95acb4f0g997b9c23cab99508: "d:\a\_tasks\NuGetCommand_333b11bd-d341-40d9-bdbd-b32d5ce6f23b\2.164.0\CredentialProviderV2\plugins\netfx\CredentialProvider.Microsoft\CredentialProvider.Microsoft.exe"
-Plugin 2020-02-18T18:36:41.1673979Z     [CredentialProvider]Handling 'Request' 'GetAuthenticationCredentials'. Time elapsed in ms: 3 - Payload: {"Uri":"https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json","IsRetry":false,"IsNonInteractive":true,"CanShowDialog":true} 2020-02-18T18:36:41.1674299Z     [CredentialProvider]Handling auth request, Uri: https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json, IsRetry: False, IsNonInteractive: True, CanShowDialog: True 2020-02-18T18:36:41.1674465Z     [CredentialProvider]URI: https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json 2020-02-18T18:36:41.1674818Z     [CredentialProvider]Skipping NuGetCredentialProvider.CredentialProviders.VstsBuildTaskServiceEndpoint.VstsBuildTaskServiceEndpointCredentialProvider, cannot provide credentials for https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json 2020-02-18T18:36:41.1675261Z     [CredentialProvider]VstsBuildTaskCredentialProvider - https://dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1675425Z     [CredentialProvider]VstsBuildTaskCredentialProvider - https://pkgs.dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1675722Z    [CredentialProvider]VstsBuildTaskCredentialProvider - https://pkgs.dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1676021Z    [CredentialProvider]VstsBuildTaskCredentialProvider - https://pkgs.dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1676161Z    [CredentialProvider]VstsBuildTaskCredentialProvider - Matched prefix: https://pkgs.dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1676330Z    [CredentialProvider]VstsBuildTaskCredentialProvider - Found credentials for endpoint https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json 2020-02-18T18:36:41.1680820Z   https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json: Unable to load the service index for source https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json. 2020-02-18T18:36:41.1680996Z   Response status code does not indicate success: 404 (Not Found - VS800075: The project with id 'vstfs:///Classification/TeamProject/{Guid1}' does not exist, or you do not have permission to access it. (DevOps Activity ID: 0628EDE7-6E7E-465D-A6AE-7B6B0AA065D2)).
</code></pre>

<p>This looks like a permissions thing to me.  But what seems odd is that the Artifact Feed in RED was discoverable when creating the Pipeline Build YAML when we then don't have permissions to use it.</p>

<p>I did try adding permissions to the Feed in RED.  Clicking on the "Add users/groups".  I found the following and added them as either Reader or Contributor, but with no success.</p>

<ol>
<li>[GREEN]\ Green Team</li>
<li>GREEN Build Services</li>
</ol>

<p>So:</p>

<ol>
<li>Am I going about this the wrong way?  If so, what ought I be doing (I thought I'd followed the Azure DevOps instuctions fairly closely)</li>
<li>Am I going about this the right way?  If so, what have I missed?</li>
</ol>

<p><strong>Update #1</strong></p>

<p>Verbose error message from Restore step</p>

<blockquote>
  <p><a href="https://api.nuget.org/v3/index.json" rel="nofollow noreferrer">https://api.nuget.org/v3/index.json</a>: Package 'Package1.nnnn.n.n' is
  not found on source '<a href="https://api.nuget.org/v3/index.json" rel="nofollow noreferrer">https://api.nuget.org/v3/index.json</a>'.
  <a href="https://pkgs.dev.azure.com/OurCompany/" rel="nofollow noreferrer">https://pkgs.dev.azure.com/OurCompany/</a>{Guid1}/_packaging/{Guid2}/nuget/v3/index.json:
  Unable to load the service index for source
  <a href="https://pkgs.dev.azure.com/OurCompany/" rel="nofollow noreferrer">https://pkgs.dev.azure.com/OurCompany/</a>{Guid1}/_packaging/{Guid2}/nuget/v3/index.json.
  Response status code does not indicate success: 404 (Not Found -
  VS800075: The project with id
  'vstfs:///Classification/TeamProject/{Guid1}' does not exist, or you
  do not have permission to access it. (DevOps Activity ID: {Guid})).</p>
</blockquote>

<p>** Update #2**</p>

<p>Added <code>BLUE Build Service (OurCompany) : (Contributor)</code> to the permissions above.</p>

<azure-devops><azure-pipelines><nuget><azure-artifacts>
Project pipeline not able to access NuGet package from Artifact Feed in different Project
DrGriff
# Project pipeline not able to access NuGet package from Artifact Feed in different Project

(Asked by: username_0 on 2020-02-18)

Updated 20th Feb & 21st Feb

Summary
Not able to find NuGet package from our private feed under Artifacts.
Our Azure DevOps environment
In Azure, we have our company "space": dev.azure.com/OurCompany
Under that, we have multiple Projects, so for example, imagine these three:

Green: this holds applications of a certain type
Blue: this holds applications of a different type
Red: this holds our "common" helper code

RED
RED holds all our common helper code are DLLs consumed by applications in GREEN and BLUE.  These are made available as NuGet packages.
Under RED's Artifacts, we see an "organisational scoped feed" called "OurCompany".  We understood that we couldn't use this because these NuGet packages need to be available to everyone in OurCompany, which means not only on Azure, but also on our DeskTop machines in our Corporate network (where we run Visual Studio).  The "organisational scoped feed" I don't think is exposed to our Corporate Network.
We therefore created a new Feed under RED's Artifacts.  When I view Permissions, I see the following entries:

{me} : (Owner)
[OurCompany]\Project Collection Adminstrators : (Owner)
[RED]\Project Administrators : (Owner)
Project Collection Build Service (OurCompany) : (Contributor)
[RED]\Contributors (Contributor)
RED Build Service (OurCompany) : (Contributor)
BLUE Build Service (OurCompany) : (Contributor)

Corporate
So, back in Corporate, we add the NuGet package feed to our Visual Studio and it can then pull the NuGet packages down from Azure.
GREEN and BLUE
In here we have our products.  We create a build Pipeline and we add a NuGet restore step:
- task: NuGetCommand@2
  displayName: 'Restore for Our Application'
  inputs:
    command: 'restore'
    restoreSolution: '**/*.sln'
    feedsToUse: 'select'
    vstsFeed: '{Guid1}/{Guid2}'

The two Guids were filled in when we picket the Azure Artifacts feed from the drop-down.
GREEN or BLUE NuGet Restore Failure
So this is where we run into our issue.  When the NuGet restore step executes, it fails with the following message:
Unable to find version 'nnnn.n.n' of package 'TheNuGetPackage'.

The log output is vast, but the salient lines appear to be:
2020-02-18T18:36:35.2838118Z [command]C:\hostedtoolcache\windows\NuGet\5.4.0\x64\nuget.exe sources Add -NonInteractive -Name {Guid2} -Source https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json
-ConfigFile d:\a\1\Nuget\tempNuGet_356.config 2020-02-18T18:36:35.7513495Z Package source with Name: {Guid2} added successfully. 2020-02-18T18:36:41.1671856Z     [CredentialProvider.183638]Command-line v0.1.20+a5d37185a1a95acb4f0g997b9c23cab99508: "d:\a\_tasks\NuGetCommand_333b11bd-d341-40d9-bdbd-b32d5ce6f23b\2.164.0\CredentialProviderV2\plugins\netfx\CredentialProvider.Microsoft\CredentialProvider.Microsoft.exe"
-Plugin 2020-02-18T18:36:41.1673979Z     [CredentialProvider]Handling 'Request' 'GetAuthenticationCredentials'. Time elapsed in ms: 3 - Payload: {"Uri":"https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json","IsRetry":false,"IsNonInteractive":true,"CanShowDialog":true} 2020-02-18T18:36:41.1674299Z     [CredentialProvider]Handling auth request, Uri: https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json, IsRetry: False, IsNonInteractive: True, CanShowDialog: True 2020-02-18T18:36:41.1674465Z     [CredentialProvider]URI: https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json 2020-02-18T18:36:41.1674818Z     [CredentialProvider]Skipping NuGetCredentialProvider.CredentialProviders.VstsBuildTaskServiceEndpoint.VstsBuildTaskServiceEndpointCredentialProvider, cannot provide credentials for https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json 2020-02-18T18:36:41.1675261Z     [CredentialProvider]VstsBuildTaskCredentialProvider - https://dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1675425Z     [CredentialProvider]VstsBuildTaskCredentialProvider - https://pkgs.dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1675722Z    [CredentialProvider]VstsBuildTaskCredentialProvider - https://pkgs.dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1676021Z    [CredentialProvider]VstsBuildTaskCredentialProvider - https://pkgs.dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1676161Z    [CredentialProvider]VstsBuildTaskCredentialProvider - Matched prefix: https://pkgs.dev.azure.com/OurCompany/ 2020-02-18T18:36:41.1676330Z    [CredentialProvider]VstsBuildTaskCredentialProvider - Found credentials for endpoint https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json 2020-02-18T18:36:41.1680820Z   https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json: Unable to load the service index for source https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json. 2020-02-18T18:36:41.1680996Z   Response status code does not indicate success: 404 (Not Found - VS800075: The project with id 'vstfs:///Classification/TeamProject/{Guid1}' does not exist, or you do not have permission to access it. (DevOps Activity ID: 0628EDE7-6E7E-465D-A6AE-7B6B0AA065D2)).

This looks like a permissions thing to me.  But what seems odd is that the Artifact Feed in RED was discoverable when creating the Pipeline Build YAML when we then don't have permissions to use it.
I did try adding permissions to the Feed in RED.  Clicking on the "Add users/groups".  I found the following and added them as either Reader or Contributor, but with no success.

[GREEN]\ Green Team
GREEN Build Services

So:

Am I going about this the wrong way?  If so, what ought I be doing (I thought I'd followed the Azure DevOps instuctions fairly closely)
Am I going about this the right way?  If so, what have I missed?

Update #1
Verbose error message from Restore step

https://api.nuget.org/v3/index.json: Package 'Package1.nnnn.n.n' is
  not found on source 'https://api.nuget.org/v3/index.json'.
  https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json:
  Unable to load the service index for source
  https://pkgs.dev.azure.com/OurCompany/{Guid1}/_packaging/{Guid2}/nuget/v3/index.json.
  Response status code does not indicate success: 404 (Not Found -
  VS800075: The project with id
  'vstfs:///Classification/TeamProject/{Guid1}' does not exist, or you
  do not have permission to access it. (DevOps Activity ID: {Guid})).

** Update #2**
Added BLUE Build Service (OurCompany) : (Contributor) to the permissions above.

**Tags:** azure-devops, azure-pipelines, nuget, azure-artifacts


---

## 1 answers

### Answer by username_0 on 2020-02-24. Score: 6

Very few people were viewing this thread, so afterwards I posted a duplicate question on [Stack Overflow](https://stackoverflow.com/questions/60296233), and now contains the answer. Below is a copy of it ...

Finally, I found the problem. I wonder if this is a bug, or just poorly documented....(or maybe I just didn't interpret it correctly).

As per [Leo Lui-MSFT's suggestion](https://stackoverflow.com/a/60315376/4640431) above (documented by Microsoft), I'd added the permissions to the NuGet feed, and this didn't work. However, I was intrigued by his sentence:

> If you've changed your builds to run at project scope

Personally, I hadn't, so I got with our System Administrator and we went through all the possible settings. Eventually, we found it - it wasn't something I had the ability to change.

So in my example above, BLUE and GREEN are the two projects that are trying to use the NuGet package in RED's Artifact feed.

So picking BLUE (or GREEN), in the bottom left hand corner of Azure DevOps you'll see a link "Project Settings". Under "Pipelines > Settings" there are four settings. We had to change the following to be:

> Limit job authorization scope to current project = false

If the option is greyed out in the project, that's probably because it's enforced at organization level. In that case, you have to first change it in the organization, and *then change it in the project as well*.

Hope that helps!


---

