Inherited Process Schema Changes and Rollback Limitations
0 reputation · 28 Jul 2024, 23:59 UTC
0 reputation · 28 Jul 2024, 23:59 UTC
Azure DevOps Services utilizes inherited processes to allow organizations to customize work item types and fields. When a schema change—such as the addition of a custom field—is applied to an inherited process, the modification propagates to all associated projects.
Current documentation indicates that schema changes are permanent once committed to a project. There is no native mechanism to revert a process to a previous state while maintaining the integrity of existing work item data. Attempting to manually remove fields or recreate processes often leads to validation errors or the loss of historical data.
Given that the REST API (version 6.0) does not expose versioning or rollback attributes for process configurations, organizations must decide between maintaining backward-compatible field definitions or performing manual migrations.
30275 reputation · 29 Jul 2024, 05:27 UTC
There is no native mechanism to version or rollback an inherited process schema in Azure DevOps Services. Once a custom field or modification is committed to an inherited process, it propagates to all associated projects permanently. Because the REST API does not expose versioning attributes for process configurations, a true "rollback" to a previous state is not possible without risking data corruption or encountering validation errors.
To revert the effect of a schema change without risking work item corruption or losing historical data, the recommended strategy is logical deprecation. Instead of attempting to delete the field, you remove its visibility and utility from the user interface.
Follow these steps to deprecate a field:
Organization Settings > Process > [Your Process] > [Work Item Type]. Remove the field from all layout groups. This hides the field from users while preserving the underlying data.Read-Only to prevent new data entry.If the schema change was a mistake that requires a structural correction (e.g., changing a field type), a manual migration is required:
This guidance assumes the use of Azure DevOps Services (Cloud) using the Inherited Process model. Behavior may differ for Azure DevOps Server (on-premises) or XML-based processes.
To verify the impact before deprecating, you can use the Work Items REST API to query for the number of work items currently holding values in the target field:
GET https://services.dev.azure.com/{organization}/{project}/_apis/wit/workitems?filter=System.TeamProject eq '{project}' and {Custom.FieldName} ne ''
Missing Diagnostic Detail: Are there any third-party integrations or external reporting tools (e.g., Power BI) currently pulling data from the specific field you intend to revert? If so, those connections must be updated before the field is hidden to avoid reporting failures.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.