TFS2010: What happens to subscriptions after an upgrade?

Both TFS2008 and TFS2010 allow users to create subscriptions to events. These can be Work Item events, CheckIn events and others. They are created via the ‘Project Alerts’ option in Team Explorer or Web Access, or the ‘Alerts’ feature in the Team Foundation Power Tools.  An administrator can also run bissubscribe.exe on the Application Tier to setup web service/SOAP subscriptions.

A few people have asked me what happens to subscriptions when a server is upgraded from TFS2008 to TFS2010, so here’s how it works:

Upgrade from TFS2008 and Attaching a Team Project Collection to an existing instance
  • Subscriptions & alerts that users have configured get preserved as-is
    • The only difference is that we’ll now store the subscriber by the internal TF identity GUID instead of the SID. This is transparent to the user.
  • For any subscription with a subscriber who is in the service accounts group, we replace the subscriber with the service group (e.g. ‘DOMAIN\tfsservice’ turns into ‘[CollectionFoo]\Service Accounts Group’)
  • We remove SOAP subscriptions which have endpoints that end in “/VersionControl/v1.0/Integration.asmx” or “/WorkItemTracking/v1.0/SyncEventsListener.asmx” or “/Warehouse/v1.0/warehousecontroller.asmx”. These are internal subscriptions used in previous versions to keep areas, iterations and identities in sync.
  • During TFS2008 upgrade or when you attach a new Team Project Collection (TPC) we replace the url prefix of SOAP subscription which ends in “/WorkItemTracking/v1.0/Integration.asmx” with a token that gets filled in at runtime with the  actual public url to the TPC
TPC Move

This is the scenario that you detach a TPC from one instance and attach it to another instance

  • Subscriptions & alerts that users have configured get preserved as-is.  They are stored in the collection’s database, so they move with the collection.
TPC Split
  • Subscriptions & alerts that users have configured get copied to the split collection.
  • When you split a TPC, you will want to make sure you clean out the subscriptions or at least warn users that they may receive duplicate alerts.