Depreciated Check-in Policy in Azure Dev Ops/Team Foundation server.

Tom Quinlivan 20 Reputation points
2026-06-11T20:56:17.2366667+00:00

We have recently run into an issue with our instance of Azure Dev Ops/Team Foundation Server where we can no longer check-in code. Our instance had a check-in policy where you have to add a comment before checking in code. It seems that policy is now obsolete and we are being asked to remove it from our instance by Microsoft but I can't figure out how to do it. I do have admin role to our GRAD project -https://dev.azure.com/uw-it-cpp-ado/GRAD I see the following error when I try to check-in code in Visual Studio:
*It's not possible to operate with deprecated policies, please see Azure DevOps blog for more information. https://aka.ms/tfvc-policy-blogpost
*When I follow the instructions to remove the check-in policy - I don't see the policy in the window. When I try to remove the policy via a C# console app and then reopen Visual Studio - the error still persists.
How can I get this policy to be removed, so I can go back to checking in code?

Thanks for any insight.

Azure DevOps
0 comments No comments

Answer accepted by question author
Pravallika KV 18,850 Reputation points Microsoft External Staff Moderator
2026-06-11T21:43:27.9633333+00:00

Hi @Tom Quinlivan ,

This error is happening because your TFVC project has obsolete (deprecated) check-in policies stored on the server. With the phased rollout, Azure DevOps will eventually fully disable obsolete policies, and at that point Visual Studio can no longer check in until those obsolete policy bindings are removed.

  1. Remove the obsolete policy bindings (not just “what you can see” in the UI)

Your situation matches the case where:

  • the policy is no longer visible in the modern “Check-in Policy” UI, but
  • the obsolete policy is still actively blocking check-ins server-side.

In that scenario, the workaround that restores check-in is to remove the residual obsolete policies using a small client app (C#/.NET) with the appropriate permissions similar to what was done in known resolutions for this exact class of problem.

When obsolete policies exist, you should use the TFVC check-in policy migration guide. Also note:

  • Migrate ASAP (the “full disabling” happens starting early February 2026 per the rollout notes).
  • Do not remove the old implementations of the policies before following the guide’s method.
  • Update Visual Studio first (specific minimum versions are listed in the migration guidance section).
  1. If you’re removing policies via Visual Studio UI only

That may not be enough if the obsolete bindings are hidden. The UI removal flow is:

  1. Team menu → Team Project Settings → Source Control
  2. Source Control Settings dialog → Check-in Policy tab
  3. Select the policy type → Remove
  4. OK

But again, if the policy isn’t visible, you’ll likely need the migration/removal approach described above (or the residual-binding removal approach), not just the UI.

Because the policy is deprecated/obsolete and may not appear in the UI, you’ll need to:

  • migrate/remove the obsolete TFVC check-in policies using the official TFVC policy migration/remove guide, and/or
  • if legacy residual bindings remain invisible, remove them using an approach like the C# removal used in confirmed resolutions for “deprecated policy blocks check-ins even though not visible”.

Hope this helps!


If the resolution was helpful, kindly take a moment to click on User's imageand click on Yes for was this answer helpful. And, if you have any further query do let us know.

Was this answer helpful?

1 person found this answer helpful.

1 additional answer

Sort by: Newest
  1. AI answer

    2026-06-11T20:56:37.91+00:00

    The deprecated TFVC check-in policy is stored in a legacy format that the current Visual Studio UI and REST APIs can no longer surface or modify. When such obsolete policies are present, Azure DevOps blocks saving any new policies and can also block check-ins with the “It's not possible to operate with deprecated policies” message. Because the policy is hidden, it cannot be removed through the normal Source Control → Check-in Policy dialog.

    The supported way to clear these obsolete TFVC policies is to remove the legacy policy metadata using the TFVC client object model from a .NET Framework console application. This is the same approach described in the TFVC check-in policy migration guidance and in the referenced Q&A resolution. Key points:

    1. Use a .NET Framework console app (not .NET Core / .NET 5+).
    2. Reference the legacy Azure DevOps/TFS client object model via the appropriate NuGet package.
    3. Run the code as a Project Administrator against the affected project/collection.
    4. The code enumerates and removes obsolete policies from the project so that the Check-in Policy tab can save new policies again.

    In the Q&A scenario that matches this issue, the Visual Studio UI showed the same message (“It's not possible to operate with deprecated policies”) and no policies were listed, REST APIs did not help, and tf.exe was unavailable. The problem was resolved only by running a small C# tool using the legacy TFVC client API to delete the obsolete policy definitions from the server. After that:

    • Visual Studio’s Team Explorer → Settings → Source Control → Check-in Policy tab opened without the deprecated-policy warning.
    • New built-in policies could be added and saved normally.
    • Check-ins were no longer blocked by the obsolete policy.

    If a previous attempt with a C# console app did not clear the policy, typical causes are:

    • The app targeted .NET Core instead of .NET Framework 4.8.
    • The wrong client NuGet package or API surface was used (not the legacy TFVC client OM referenced in the migration guide).
    • The code did not actually enumerate and remove the obsolete policies for the specific project/collection.
    • The account running the tool did not have sufficient permissions (must be Project Administrator).

    Given that the UI and REST APIs cannot operate on these policies and the save operation for obsolete TFVC policies is now disabled as part of the deprecation, the only supported remediation is to:

    1. Implement and run the migration/cleanup tool using the TFVC client object model as described in the TFVC check-in policy migrate guide, specifically the section on removing existing obsolete policies.
    2. If that still fails, open a support case so Microsoft can perform backend cleanup, because there is no other public API or UI path to remove these legacy policies.

    Once the obsolete policy metadata is removed, check-ins will proceed normally and any required replacement policies (for example, requiring comments) can be reconfigured using the current, non-obsolete policy types.


    References:

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

    Was this answer 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.