Jira DC to Azure Dev Ops not delivering data and no errors Shown

When Synching a multiline custom field in Jira Called “Acceptance Criteria” to ADO System Field “Acceptance Criteria” There are no errors shown but there is no data being updated in the ADO side for this field.

Jira outgoing synch Code:
def acCf = issue.customFields.“Acceptance Criteria”

if (acCf && acCf.value?.trim()) {

// IMPORTANT: send the CF object, not the String

replica.customFields.“Acceptance Criteria” = acCf

} else {

// Keep payload clean if empty

replica.customFields.remove(“Acceptance Criteria”)

}

ADO Incoming Synch

// — ADO INCOMING: map to system Acceptance Criteria (HTML) —
// Correct reference name (case-sensitive):
def AC_REF = “Microsoft.VSTS.Common.AcceptanceCriteria”

// Be defensive: ensure the map exists
workItem.fields = workItem.fields ?: [:]

// Pull text from payload
def acText = (replica.customFields.“Acceptance Criteria”?.value ?: “”) as String
exLogger.info(“[AC IN] raw=‘${acText.take(200)}’ length=${acText.size()}”)

// Quick HTML safety + newline preservation for ADO HTML control
def htmlFromPlain = { String s →
if (!s) return null
def esc = s.replace(“&”,“&”).replace(“<”,“<”).replace(“>”,“>”)
// Use
instead of

 so it blends with existing ADO field styling
esc.replace(“\r\n”, “\n”).replace(“\n”,“
”)
}

// 1) Write Acceptance Criteria if non-empty
def html = htmlFromPlain(acText)
if (html) {
workItem.fields[AC_REF] = html
exLogger.info(“[AC IN] wrote AcceptanceCriteria (${html.size()} chars)”)
} else {
exLogger.info(“[AC IN] nothing to write into AcceptanceCriteria (empty)”)
}

It sounds like you’re running into a classic scenario where a Jira custom field (“Acceptance Criteria”) isn’t syncing to the Azure DevOps system field, and there are no errors to help debug. Here are some key points and troubleshooting steps based on Exalate documentation:

  1. Custom Field Visibility in Jira:
    Exalate requires the custom field to be present on the Issue View screen in Jira. If it’s not, the field won’t sync—even though you won’t see any errors. Double-check that your “Acceptance Criteria” custom field is added to the relevant screen in Jira.
    See details here

  2. Field Name Overlap:
    Jira allows custom fields to have the same name as system fields, which can cause confusion. Make sure you’re referencing the correct field in your sync rules.
    More info here

  3. Sync Rule Structure:
    For syncing a Jira custom field to an Azure DevOps system field, your outgoing and incoming sync rules should look like this:

    • Jira Outgoing Sync (sending the custom field):
      replica.customFields."Acceptance Criteria" = issue.customFields."Acceptance Criteria"
      
    • ADO Incoming Sync (receiving and mapping to the system field):
      def AC_REF = "Microsoft.VSTS.Common.AcceptanceCriteria"
      def acText = (replica.customFields."Acceptance Criteria"?.value ?: "") as String
      workItem.fields[AC_REF] = acText // or your HTML conversion as needed
      

    Make sure you’re using .value when extracting the text from the custom field object.

    See the full guide for Azure DevOps custom fields

  4. Field Type Handling:
    Azure DevOps “Acceptance Criteria” is a multi-line text (HTML) field. Ensure your conversion to HTML is working as expected, and that you’re not sending an empty string.

  5. No Errors, No Data:
    If you see no errors and no data, it’s almost always a field mapping or visibility issue. Double-check the field names, their presence on screens, and that your sync rules are referencing the correct fields.

If you’ve confirmed all the above and it’s still not working, try logging the value of issue.customFields."Acceptance Criteria" in your Jira outgoing sync to ensure it’s being picked up as expected.

Let me know if you need more specific troubleshooting steps!

The Value is being picked up By Jira outgoing Synch.

2025-10-15 15:38:42,749-0500 http-nio-8080-exec-14 url: /rest/issuehub/4.0/errors/connections/29/resolveAll; user: * DEBUG 938x98190x1 1astc08 10.221.13.160,10.222.96.1 /rest/issuehub/4.0/errors/connections/29/resolveAll [Shackles] ****[AC OUT] present=true id=11800 value='

Acceptance CriteriB

Hi @Honduras74,

Can you confirm if the value from Jira is flowing to ADO? If it is, are you able to logging the value in your ADO incoming sync?

Kind regards,

Ariel

Here are both Jira Outgoing and ADO Incoming scripts.
Jira values are flowing to ADO: confirmed. ADO is receiving the values: confirmed. No errors are shown anywhere, ADO still not adding or updating any of the values. It does create the Story but does not add any of the fields.

ADO-Full-Incomming-Clean.txt (4.6 KB)

JiraOutgoingSynch-clean full.txt (5.7 KB)

Here you go @Ariel_Aguilar

Hi @Honduras74,

Have you tried to pass the value without the html conversion?

Kind regards,

Ariel

@Ariel_Aguilar That’s how the original script started, added the HTML conversion later thinking it was the reason it wasn’t passing the data. The thing is none of the other fields are working, no matter what data type they are.

Can you try to do something simple in the incoming script to check if it works:

workItem."Microsoft.VSTS.Common.AcceptanceCriteria" = replica.customFields."Acceptance Criteria".value

Let me know if this works for you.

@Ariel_Aguilar That absolutely worked!

@Ariel_Aguilar would this approach work for system. Fields?

Glad to hear that worked! Yes, the same approach should also be applied to the system fields.

Kind regards,

Ariel