Request to purge obsolete TFVC check-in policies for my organization

Latorre,Arturo,ES-Girona 20 Reputation points
2026-06-02T06:31:45.5666667+00:00

Hello, We are unable to perform TFVC check-ins due to deprecated check-in policies.

Error message: "It's not possible to operate with deprecated policies, please see Azure DevOps blog for more information. https://aka.ms/tfvc-policy-blogpost"

Details:

  • Visual Studio version: 2022
  • .NET Framework: 4.8

What we already tried:

  1. SetCheckinPolicies(null) using ExtendedClient NuGet 19.225.2 → executes without error but issue persists
  2. Check-in Policy tab in Team Explorer → shows empty (no policies visible)
  3. Repository Policies in Azure DevOps portal → no TFVC policies shown
  4. Ran cleanup against all projects in the organization → same result

We believe the obsolete policy metadata is stuck on the server side and needs to be purged manually by Microsoft. Could you please purge the deprecated TFVC check-in policy metadata for our organization? Thank you.

Azure DevOps

Answer accepted by question author

AI answer

2026-06-02T06:32:22.2366667+00:00

Manual server-side purge of TFVC check-in policy metadata by Microsoft is not supported. Instead, TFVC check-in policies must be migrated or recreated using the new storage format; obsolete policies that remain in the old format are now disabled and block check-ins until migrated.

Key points from the current behavior and deprecation:

  1. Obsolete TFVC policies are disabled
    • Azure DevOps has changed how TFVC check-in policies are stored and is deprecating the old (obsolete) format.
    • As part of this deprecation, creation and modification of obsolete policies has been disabled, and in the latest phase, any remaining policies in the old format are disabled and no longer function.
    • When obsolete policies remain, TFVC check-ins can be blocked until those policies are migrated to the new format.
  2. Visual Studio/ExtendedClient requirements
    • The new TFVC policy model requires updated Visual Studio versions and the updated Microsoft.TeamFoundationServer.ExtendedClient NuGet package.
    • Visual Studio must be updated to a version that supports the new policies (for VS 2022/2019/2017, specific minimal versions are required).
    • The ExtendedClient package has a new version (19.255.0-preview) that contains updated TFVC policy classes and methods; custom clients must follow the migration guide.
  3. How to resolve the issue (no server purge; migrate instead) A. Update Visual Studio and client libraries
    1. Ensure Visual Studio 2022 is updated to a version that supports the new TFVC policies as described in the release notes.
    2. Update Microsoft.TeamFoundationServer.ExtendedClient to the latest version that includes the new policy model.
    B. Recreate policies in Visual Studio using the new format
    1. In Visual Studio, a project administrator should open:
      • Settings -> Team Project -> Source Control -> Check-in Policy.
    2. Add new policies (without the "Obsolete" mark) with the same parameters as the old ones.
      • These new policies are stored in the new format and will be honored by Azure DevOps.
    3. Once the new policies are in place, TFVC check-ins should work again using the new policy storage.
    C. If using custom policy implementations or custom ExtendedClient code
    1. Follow the TFVC check-in policy migration guide:
      • Update custom policies to inherit from CheckinPolicyBase (and IPolicyCompatibilityJson where applicable) instead of PolicyBase.
      • Implement GetJsonSerializerSettings if GetBinaryFormatter was previously overridden, using JsonSerializerSettings with TypeNameHandling.Objects.
      • Mark private fields that must be persisted with [JsonProperty].
      • Replace obsolete policy-loading APIs (GetCheckinPoliciesForServerPaths, GetCheckinPolicies, SetCheckinPolicies) with the new methods (GetCheckinClientPoliciesForServerPaths, GetCheckinClientPolicies, SetCheckinClientPolicies).
    2. For further automigration of custom policies, implement IPolicyMigration on the obsolete policy types and provide ToNewPolicyType() that returns the new CheckinPolicyBase-derived policy.
    3. Call MigrateFromOldPolicies as described in the migration guide so that existing obsolete policies are converted and stored in the new format.
  4. Obsolete policies cannot be edited or newly created
    • The save operation for obsolete TFVC policies has been disabled. Existing obsolete policies remain visible but cannot be changed and will ultimately be disabled.
    • The only supported path is to migrate or recreate policies using the new policy type; there is no supported mechanism to request Microsoft to purge the obsolete policy metadata on the server.
  5. When check-in policies appear empty in Visual Studio/portal
    • Even if the Check-in Policy tab and Azure DevOps portal show no active policies, obsolete policies in the old storage format may still exist and be blocking check-ins until migrated.
    • Recreating the policies as new (non-obsolete) policies in Visual Studio, or migrating custom policies via the ExtendedClient migration APIs, is required to restore check-in functionality.

For organizations blocked by obsolete policies, the remediation path is therefore:

  • Update Visual Studio and ExtendedClient to supported versions.
  • Recreate built-in policies in Visual Studio using the new format.
  • Migrate any custom policies using the migration guide and MigrateFromOldPolicies.
  • Avoid relying on SetCheckinPolicies(null) to clear obsolete policies; instead, move them to the new model so that check-ins can proceed.

References:

AI-generated content may be incorrect. Read our transparency notes for more information.

Was this answer helpful?

1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.