I am trying to synchronize work items from Azure DevOps to Jira using Exalate. I’m encountering the following error when creating a work item in Azure DevOps:
TF401320: Rule Error for field Responsible. Error code: Required, HasValues, AllowsOldValue, InvalidEmpty
Here’s what I have done so far:
I have a valid user in Azure DevOps: malin.harbu@rema.no.
You’re running into the TF401320 error because Azure DevOps is enforcing a required custom field (“Responsible”) that isn’t being set during work item creation via Exalate. Here’s how you can address your questions:
How to set the required “Responsible” field via Exalate:
You need to explicitly set the custom field in your Incoming sync script for Azure DevOps. The syntax is:
workItem.customFields."Responsible" = <value>
Replace <value> with the appropriate user or value that the “Responsible” field expects. If it’s a user field, ensure the value matches the expected format (often the display name or email, depending on your process template).
How to determine the internal field name of a custom field:
In most cases, the display name (as seen in the Azure DevOps UI) is used in the script, e.g., workItem.customFields."Responsible". If you’re unsure, you can check your Azure DevOps process template or use the Azure DevOps API to list field references. Exalate’s documentation also suggests using the display name directly in the script. See: How to Sync Custom Fields in Azure DevOps.
Best practices for populating both “System.AssignedTo” and a custom “Responsible” field:
Set both fields explicitly in your Incoming sync script:
Or, if “Responsible” expects a different format, adjust accordingly. Make sure the value you assign is valid for that field (e.g., a user object, display name, or email).
Key points:
Always set all required fields in the Incoming sync script to avoid creation errors.
If you’re not sure about the field’s expected value format, check your Azure DevOps process or use the API to inspect field details.