TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration

by XDK 11. January 2015 08:43


TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration


After adding a initial state New to  Bug work item workflow, the backlog and the task board showed the error:

TF400917: The current configuration is not valid for this feature. This feature cannot be used until you correct the configuration


1. Export team project's CommonConfiguration.xml

witadmin exportcommonprocessconfig /collection:<Collection URL> /p:<Team Project Name> /f:<CommonConfiguration.xml>

2. Add the new state to CommonConfiguration.xml's BugCategory

  <BugWorkItems category="Microsoft.BugCategory">


      <State type="Proposed" value="New" />

      <State type="InProgress" value="Active" />

      <State type="Complete" value="Closed" />

      <State type="Resolved" value="Resolved" />



3. Import the updated CommonConfiguration.xml to team project

witadmin Importcommonprocessconfig /collection:<Collection URL> /p:<Team Project Name> /f:<CommonConfiguration.xml>

Tags: ,

Azure DevOps on-premises | TFS 2012

How to track TFS Job execution status?

by XDK 23. December 2014 11:09


You can query the list of TFS Jobs from the Tfs_Configuration database tbl_JobDefinition table

SELECT *  FROM [Tfs_Configuration].[dbo].[tbl_JobDefinition]

Job Id Job Name
077785F6-AB53-46C3-9519-0BC8CDFD8AF0 Message Queue Cleanup Job
C03C29A7-00AE-4E02-94BC-18ACA80E2EA2 Team Foundation Server Image Cleanup
DD7629E4-66BB-45F9-AD42-2651BD7E56B8 Team Foundation Server Send Email Confirmation Job
47EC1DEB-483A-441F-8F27-2E739FB69A2F Runtime SQM Data Collector Job
3C601170-8080-4A7D-B8E7-48E991F80C4A Team Foundation Server Application Tier Maintanence Job
68D12C31-4894-49C3-8E12-4D3E954C98E7 Team Foundation Server On Demand Identity Synchronization
D904F618-F83E-4727-B66B-5E032A3965DB Collection Servicing SQM Monitor
99653238-499B-437B-8E6E-5F4B6C0C6ABA Incremental Analysis Database Sync
C3483450-093E-415D-84B9-740C076219F0 CollectIdentityStatisticsJobExtension
B1516502-4633-432B-BDB3-74C802C5F2B7 Team Foundation Server Send Mail Job
544DD581-F72A-45A9-8DE0-8CD3A5F29DFE Team Foundation Server Periodic Identity Synchronization
AD129F91-596D-4BDC-9EEB-8E6D2BB13170 Full Analysis Database Sync
B19DDD28-9A95-42E2-9697-966FD822F1CD Prune Registry Audit Log
2ABF4FAB-5E36-4731-9E9F-9694C3CF0592 File Container Cleanup
519C2389-D96E-4B9A-A928-9FFB51F5FDFE Common Structures Warehouse Sync
63A78C70-8FE0-4743-BA2D-A00CF8C20FDF Security Identity Cleanup Job
7A3E559E-8EB7-4E90-A4F7-B7A2515D52B9 Team Foundation Server Framework File Service Cleanup
50CA7C9C-D868-4701-A5A3-D2459CC16A5E Optimize Databases
AF87E4CD-D421-4A24-BF16-D3A68371703E Team Foundation Server Database Optimization
8FC76967-DA5D-4D53-937B-E3EFC6AF0FCB Job History Cleanup Job
62C4F0BD-75EB-4A20-9C43-E3F479AB2F51 Optimize Databases
A4804DCF-4BB6-4109-B61C-E59C2E8A9FF7 Team Foundation Server Event Processing
AD9C60AE-5BF0-4AC0-BE56-F2988088859A Team Foundation Server Activity Logging Administration
81A90003-CA23-4E55-9320-F956F62A2477 Team Foundation Server Data Maintanence

Using the Job Id, you can get the job execution details from the Tfs_Configuration database tbl_JobHistory table

SELECT * FROM [Tfs_Configuration].[dbo].[tbl_JobHistory] where [JobId] = 'XXX'

Following query gets the "Team Foundation Server Send Mail Job"  details

SELECT * FROM [Tfs_Configuration].[dbo].[tbl_JobHistory] where [JobId] = 'B1516502-4633-432B-BDB3-74C802C5F2B7' 

tbl_JobHistory table field details

1) Job ID – Every job in the system has a unique id.

2) Job Agent ID – Every AT/Job Agent has a unique id.  This field is useful if you have multiple application tiers and you want to know which one the job executed on so that you can investigate the event log or performance counters.

3) Result – This is an integer that represents the result of the job. 

   0 = Succeeded

   1 = PartiallySucceeded

   2 = Failed

   3 = Stopped

   4 = Killed

   5 = Blocked

   6 = ExtensionNotFound

   7 = Inactive

   8 = Disabled

4) Queued Reason – This is an integer that represents the way a job was scheduled. 

   0 = No reason to execute the job

   1 = Job has a schedule

   2 = Queued manually

   4 = Queued manually while already in progress

   8 = Queued due to previous result (Blocked, Inactive)

5) Start Time – The local time that the job started executing on a job agent

6) End Time – The local time that the job finished executing on a job agent

7) Duration – The number of minutes that the job was executing for

8) Result Message – Jobs are able to log a status message when they finish executing.


How to process failed Jobs?

TFS Job details.

Tags: , ,

Azure DevOps on-premises | TFS 2012 | TFS 2013

Not able to connect to TFS cube (Tfs_Analysis - SSAS)

by XDK 13. November 2014 09:20


Login failed for user XXX


I am not able to connect to TFS cube even though, I am in Tfs_Analysis --> TfsWarehouseDataReader's role. 


Make sure that you have enabled the "Read definition" database permission for TfsWarehouseDataReader role


Tags: , ,

SQL Analysis Services | TFS 2012 | TFS 2013

The number of items on your backlog exceeds the configured limit of 500

by XDK 29. April 2014 19:29


The default display limit for the task board is 500 tasks.For performance reasons, the task board is restricted to display a maximum of 500 work items. When you open the task board, all work items are loaded into cache. so changing the limit increases the memory demand on your clients and might cause issues. Limiting the number of work items may yield quicker load times

Work Around:

You can modify the process template to increase the limit.

For TFS 2012, edit Agileprocessconfig.xml

For TFS 2013, edit ProcessConfiguration.xml

Step 1: Export Agileprocessconfig.xml from the team project

witadmin exportagileprocessconfig /collection:"http://tfs:8080/tfs/DefaultCollection"

 /p:DefaultProject /f:"c:\Agileprocessconfig.xml"

Step 2: Add a attribute "workItemCountLimit" to the <IterationBacklog> element as below

<?xml version="1.0" encoding="utf-8"?>
  <IterationBacklog workItemCountLimit="1000">
      <Column width="50" refname="Microsoft.VSTS.Scheduling.Effort" />
      <Column width="400" refname="System.Title" />
      <Column width="100" refname="System.State" />
      <Column width="100" refname="System.AssignedTo" />
      <Column width="50" refname="Microsoft.VSTS.Scheduling.RemainingWork" />
        <Field refname="System.Title" />
      <Column width="400" refname="System.Title" />
      <Column width="100" refname="System.State" />
      <Column width="50" refname="Microsoft.VSTS.Scheduling.Effort" />
      <Column width="200" refname="System.IterationPath" />
      <Column width="200" refname="System.Tags" />

Step 3 : validate your Agileprocessconfig.xml

witadmin importagileprocessconfig /collection:"http://tfs:8080/tfs/DefaultCollection"

 /p:DefaultProject /f:"c:\Agileprocessconfig.xml" /v

Step 4: Import Agileprocessconfig.xml to the team project

witadmin importagileprocessconfig /collection:"http://tfs:8080/tfs/DefaultCollection"

 /p:DefaultProject /f:"c:\Agileprocessconfig.xml"

Tags: ,

Azure DevOps on-premises | TFS 2012 | TFS 2013

TF400898: An Internal Error Occured.

by XDK 16. April 2014 19:18


Server side exceptions:

System.ArgumentOutOfRangeException: startIndex cannot be larger than length of string.

Parameter name: startIndex

   at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)

   at Microsoft.TeamFoundation.Server.WebAccess.Routing.TfsRoute.GetRouteData(HttpContextBase httpContext)

   at System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext)

   at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context)

   at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()

   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously)


This error occurred while trying to access the TFS 2012 update 3 server team project website for viewing boards or creating PBIs, bugs and other work items. The error can be reproduced by clicking back and forth a few times between the home page and CODE, WORK, TEST, etc. The issue was specific to one specific collection in the server. 


One of the team project's shared query with wrong condition clause was trying to load 73000+ WIs which was pinned to the Team Favorites in the home page causing the issue. The issue was resolved after correcting the query.

Tags: ,

Azure DevOps on-premises | TFS 2012

About the author

My name is Xavier Dilip Kumar Jayaraj having 16+ years of IT experience which includes solid experience and depth Knowledge in Application Life Cycle Management, Configuration Management, Implementation and Support using TFS on-premises and Azure DevOps. I have invested in gaining DevOps knowledege to expertise with Cloud Computing providers namely Microsoft Azure and Amazon Web Services in recent years. I am very positive to learn and adapt emerging technologies to client’s environment.

Microsoft Certified: Azure Administrator Associate

Microsoft Certified: Azure DevOps Engineer Expert

DevOps Engineer Certificate Program | Transcript 

OTP-AWSD5: AWS IoT: Developing and Deploying an Internet of Things

[PCEP-30-01] PCEP – Certified Entry-Level Python Programmer

Quotes I Like

"Failure will never overtake me if my determination to succeed is strong enough."  - Dr. APJ. Abdul Kalam

"Always be yourself, express yourself, have faith in yourself, do not go out and look for a successful personality and duplicate it." - Bruce Lee

"Technology is just a tool. In terms of getting the kids working together and motivating them, the teacher is the most important." - Bill Gates

"Innovation distinguishes between a leader and a follower." - Steve Jobs



The information provided here is based on my expreriences, troubleshooting and online/offline findings. It can be used as is on your own risk without any warranties and I impose no rights.