TF255356: Known Issue with Configuring TFS 2013 RTM Express and Basic
This post is to report a known issue with configuration in Team Foundation Server 2013 RTM. The issue is specific to configuring TFS Basic, Express, or Upgrade on a machine with SQL Express 2008 R2 SP1 or SP2 installed. There is a workaround, which is outlined below.
If you try to configure TFS 2013 RTM (Basic, Express, or Upgrade) on a server with a SQL Express 2008 R2 instance, the process will fail. To hit the issue, Service Pack 1 or 2 must be applied to SQL Express 2008 R2, and the instance must be a default instance; default SQL Express instances have the name “SqlExpress.”
As you navigate through the configuration wizard, you should receive a warning in the Readiness Checks that TFS intends to upgrade your SQL Express instance to a version that is usable with TFS. At this point, everything will appear to be fine.
However, during the configuration phase, the process fails with one of the following errors:
For Basic/Express: TF255356: The following error occurred when configuring the Team Foundation databases: TF400711: Error occurred while executing servicing step Grant Read Access for Team Founation Valid Users for component WarehouseToDev11M38FinalConfiguration during ToDev11M38FinalConfiguration: Query processor could not produce a query plan because of the hints defined in this query. Resubmit the query without specifying any hints and without using SET FORCEPLAN.. For more information, see the configuration log.
From TFS 2010: TF400744: An error occurred while executing the following script: FrameworkSharedToDev12M48-Part2.sql. Failed batch starts on the line 107. Statement line: 95. Script line: 201. Error: 102 Incorrect syntax near ‘(‘.
From TFS 2012: TF255356: The following error occurred when configuring the Team Foundation databases: TF400711: Error occurred while executing servicing step Install the catalog roots for component InstallFrameworkApplication during Install: TF14103: Internal error: The database procedure prc_SaveCatalogChanges returned the wrong number of rows.. For more information, see the configuration log.
These errors are misleading, because the problem TFS hit was not directly related to configuring your databases. The real problem is that TFS did not correctly upgrade your SQL Express instance (in fact, it did not perform the operation at all), and thus was unable to create or upgrade the TFS Configuration Database on the SQL server it was provided because it isn’t a compatible version.
You can work around this issue by upgrading SQL Express manually and then reconfiguring. Here are the detailed steps you should follow to do so:
1) Upgrade SQL Express manually by running the SQL Express executable included with TFS on the command line.
Open a command prompt and navigate the to Tools directory of your TFS installation folder. For most people, this will be located at %ProgramFiles%\Microsoft Team Foundation Server 12.0\Tools.
Once in this directory, determine whether you have a 32- or 64-bit operating system and then run one of the following:
32-bit: SQLEXPR32_x86_ENU.exe /ACTION=Upgrade /UpdateEnabled=false /INSTANCENAME=SqlExpress /SKIPRULES=RebootRequiredCheck
64-bit: SQLEXPR_x64_ENU.exe /ACTION=Upgrade /UpdateEnabled=false /INSTANCENAME=SqlExpress /SKIPRULES=RebootRequiredCheck
You will be asked to accept the SQL license terms to proceed. Please expect the upgrade to take a while.
2) Configure TFS again.
If you used the Upgrade wizard, you will first need to restore the backups you took of your databases prior to re-running configuration. You can use the TFSRestore.exe tool that was installed with TFS, or you can restore through SQL directly. If for some reason you do not have backups, please contact Microsoft Support for assistance.
Start the Administration Console and run through the wizard as you did before. This time, the verify checks should not indicate that your SQL instance needs an upgrade. If all the other settings you’ve provided are valid, configuration should complete without a problem.
Note: If you performed a Basic or Express installation, the failed configuration created a partial TFS ConfigDB that you may want to drop. The name of the database is TFS_Configuration(Failed), and you can use SQL Server Management Studio Express or the SQLCMD.exe tool to perform the deletion. You will not suffer any ill effects if you leave it around.
Feel free to comment below or email tfcare a*t Microsoft d*ot com with any questions. Microsoft Support has also been made aware of this issue, and can provide assistance if necessary. We apologize for the inconvenience, and will be fixing the issue in our first update for TFS 2013.