Unblocking the Required Fields Error

    Problem

    There might be several different error messages. One of them is related to a missing field you expect to get from the other side.

    Error detail:
    Rest exception while creating an issue..... XXXXX is required

    XXXX is the missing entity field name in the error message.

    Cause

    • If you have some conditional structures in the Incoming sync and none of these conditions apply, Exalate throws an error.
    • The Source side does not send data, which is required to create an issue on the destination side (your side).

    Solution

    Adapt the code to unblock the synchronization and resolve the error. Don't sync the issue received from the remote side if there isn't enough data to create a local issue.

    To resolve the error you will need to modify the Incoming sync for new issues (Create Processor).

    Check the examples below.

    Example

    // if the issue type name is Epic and the custom field "Epic Name" is empty, don't sync it
    if (replica.type?.name == "Epic" && replica.customFields."Epic Name" == null) { 
      return 
    }
    //If the project key is SD and issue type is Incident, create a local issue in DEV  with Bug issue type.
    if(replica.project.key == "SD" && replica.type.name == "Incident") {
      issue.projectKey   = "DEV"
      issue.typeName     = "Bug"
    }
    //If the project key is SDVEK and issue type is Change, create a local issue in DEV1C  with Task issue type.
    else if(replica.project.key == "SDVEK" && replica.type.name == "Change"){
      issue.projectKey   = "DEV1C"
      issue.typeName     = "Task"
    }
    // if the received issue is not from SDVEK project, don't sync it
    else {
      return
    }


    This workaround helps only to resolve the error and unblock the synchronization.

    To fix the error you need to make sure the Source side sends the required data. Check the Source side Outgoing sync.