Skip to main content

Team Foundation Server–402 (Payment Required)

As part of our build process we push some of our artifacts as NuGet packages to Team Foundation Server.

After adding a new build agent, executing the push failed with the following log output:

2019-09-02T13:30:07.1191540Z ##[section]Starting: dotnet push

2019-09-02T13:30:07.1191540Z ==============================================================================

2019-09-02T13:30:07.1191540Z Task         : .NET Core

2019-09-02T13:30:07.1191540Z Description  : Build, test, package, or publish a dotnet application, or run a custom dotnet command. For package commands, supports NuGet.org and authenticated feeds like Package Management and MyGet.

2019-09-02T13:30:07.1191540Z Version      : 2.131.0

2019-09-02T13:30:07.1191540Z Author       : Microsoft Corporation

2019-09-02T13:30:07.1191540Z Help         : [More Information](https://go.microsoft.com/fwlink/?linkid=832194)

2019-09-02T13:30:07.1191540Z ==============================================================================

2019-09-02T13:30:07.5722786Z SYSTEMVSSCONNECTION exists true

2019-09-02T13:30:07.6035200Z Saving NuGet.config to a temporary config file.

2019-09-02T13:30:07.6035200Z Saving NuGet.config to a temporary config file.

2019-09-02T13:30:07.6035200Z [command]"C:\Program Files\dotnet\dotnet.exe" nuget push F:\Build\_work\12\s\Hub\Hub.Interfaces\bin\Development\Hub.Interfaces.1.0.0.nupkg --source http://tfs:8080/tfs/DefaultCollection/_packaging/892779dc-d854-4c9f-8b26-833d52585ae6/nuget/v3/index.json --api-key VSTS

2019-09-02T13:30:07.9941927Z error: Unable to load the service index for source http://tfs:8080/tfs/DefaultCollection/_packaging/892779dc-d854-4c9f-8b26-833d52585ae6/nuget/v3/index.json.

2019-09-02T13:30:07.9941927Z error:   Response status code does not indicate success: 402 (Payment Required - The user does not have a license for the extension ms.feed. (TFS Activity ID: ACE122BD-49E4-4927-B927-1C2A37F8D18B)).

2019-09-02T13:30:08.0253954Z ##[error]Error: C:\Program Files\dotnet\dotnet.exe failed with return code: 1

2019-09-02T13:30:08.0253954Z ##[error]Packages failed to publish

2019-09-02T13:30:08.0253954Z ##[section]Finishing: dotnet push

The problem is that this new agent is running using a service account that isn’t know inside Team Foundation Server. Let’s fix this…

  • Browse to your Team Foundation Server collection
  • On the Start page click on the Gear icon and select Users from the dropdown

  • On the Users tab, select Package Management on the left.

  • Afterwards click on Assign to add extra users.

Remark: The steps above apply to Team Foundation Server not to Azure DevOps(the latest incarnation of TFS)

Popular posts from this blog

.NET 8–Keyed/Named Services

A feature that a lot of IoC container libraries support but that was missing in the default DI container provided by Microsoft is the support for Keyed or Named Services. This feature allows you to register the same type multiple times using different names, allowing you to resolve a specific instance based on the circumstances. Although there is some controversy if supporting this feature is a good idea or not, it certainly can be handy. To support this feature a new interface IKeyedServiceProvider got introduced in .NET 8 providing 2 new methods on our ServiceProvider instance: object? GetKeyedService(Type serviceType, object? serviceKey); object GetRequiredKeyedService(Type serviceType, object? serviceKey); To use it, we need to register our service using one of the new extension methods: Resolving the service can be done either through the FromKeyedServices attribute: or by injecting the IKeyedServiceProvider interface and calling the GetRequiredKeyedServic...

Azure DevOps/ GitHub emoji

I’m really bad at remembering emoji’s. So here is cheat sheet with all emoji’s that can be used in tools that support the github emoji markdown markup: All credits go to rcaviers who created this list.

Kubernetes–Limit your environmental impact

Reducing the carbon footprint and CO2 emission of our (cloud) workloads, is a responsibility of all of us. If you are running a Kubernetes cluster, have a look at Kube-Green . kube-green is a simple Kubernetes operator that automatically shuts down (some of) your pods when you don't need them. A single pod produces about 11 Kg CO2eq per year( here the calculation). Reason enough to give it a try! Installing kube-green in your cluster The easiest way to install the operator in your cluster is through kubectl. We first need to install a cert-manager: kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.5/cert-manager.yaml Remark: Wait a minute before you continue as it can take some time before the cert-manager is up & running inside your cluster. Now we can install the kube-green operator: kubectl apply -f https://github.com/kube-green/kube-green/releases/latest/download/kube-green.yaml Now in the namespace where we want t...