将本地Azure DevOps(v6)的Bug复制到云端(v7)时遇TF401320错误求助
解决Azure DevOps Bug工作项复制时的Resolved Reason规则错误
可能的原因及修复步骤
确认Resolved Reason值与云端完全匹配
云端Azure DevOps的Microsoft.VSTS.Common.ResolvedReason字段可选值可能和本地v6版本存在差异,即使手动设置值也需注意:- 查看云端Bug工作项类型中Resolved Reason的允许选项(如“已修复”“无法重现”“按设计”等)
- 确保脚本传入的值完全匹配云端选项的文本(包括大小写、空格、特殊字符)
- 禁止传入空值或云端未定义的自定义值
检查工作项状态流转的绑定规则
Bug的状态(如“已解决”)与Resolved Reason是绑定关联的,本地与云端的状态流转逻辑可能不同:- 确认云端Bug从“活动”切换到“已解决”状态时,是否强制要求填写Resolved Reason
- 脚本中需先将工作项状态设置为需要Resolved Reason的状态,再填写对应字段值,顺序不可颠倒
验证字段的状态依赖规则
云端的Resolved Reason字段可能有状态限制:- 如果Bug处于“新建”等不需要Resolved Reason的状态,不要设置该字段的值
- 确认云端该字段在特定状态下是否为只读,避免在不允许修改的状态下尝试赋值
用API获取字段规则做校验
调用Azure DevOps REST API获取云端Bug工作项类型的字段规则,确保脚本逻辑符合要求:GET https://dev.azure.com/{org}/{proj}/_apis/wit/workitemtypes/Bug/fields?api-version=7.1-preview.3重点查看
Microsoft.VSTS.Common.ResolvedReason字段的allowedValues(允许值)和required(必填性)属性
错误信息参考
TF401320: Rule Error for field Resolved Reason. Error code: HasValues, LimitedToValues, InvalidNotEmpty.
详细错误JSON:
{ "$id": "1", "customProperties": { "FieldReferenceName": null, "FieldStatusFlags": "none", "ErrorMessage": "TF401320: Rule Error for field Resolved Reason. Error code: HasValues, LimitedToValues, InvalidNotEmpty.", "FieldStatusCode": 0, "RuleValidationErrors": [ { "fieldReferenceName": "Microsoft.VSTS.Common.ResolvedReason", "fieldStatusFlags": "hasValues, limitedToValues, invalidNotEmpty", "errorMessage": "TF401320: Rule Error for field Resolved Reason. Error code: HasValues, LimitedToValues, InvalidNotEmpty.", "fieldStatusCode": 1048588, "ruleValidationErrors": null } ] }, "innerException": null, "message": "TF401320: Rule Error for field Resolved Reason. Error code: HasValues, LimitedToValues, InvalidNotEmpty.", "typeName": "Microsoft.TeamFoundation.WorkItemTracking.Server.RuleValidationException, Microsoft.TeamFoundation.WorkItemTracking.Server", "typeKey": "RuleValidationException", "errorCode": 0, "eventId": 3200 }
内容的提问来源于stack exchange,提问作者msteel9999
相关产品推荐
相关产品推荐

