I'm trying to integrate JIRA and Azure DevOps to sync items. Most of this works, except assignee.


Assignee does work from Azure DevOps -> JIRA.

It doesn't work from JIRA -> AzureDevOps.


The call to get the user is always null, for users that exist too.


def user = nodeHelper.getUserByEmail(replica.assignee.email)


The replica.assignee.email is set to a correct email address.

"user" is always null.


I've seen in some docs that this might be because of a permission issue; but not where I should fix said permission issue. 

    CommentAdd your comment...

    1 answer


      Hi Cameron

      There 2 reasons why the method would return a 'null' value:

      • the user email address is not found
      • the Exalate user has no 'Browse Users' permissions

      By Exalate user we refer to the proxy user that Exalate uses to make updates, more information here: https://docs.idalko.com/exalate/x/HIA7

      For the method to work on Azure DevOps, you need to make sure that the user is part of the team that has access to the Azure DevOps project, so you must verify the user's permission there.

      Please verify this and let me know if it works.

      Kind regards,


      1. C M

        Hey Daniel,

        The users I am testing definitely have access to the project as I can add them manually to work items (tasks, user stories, etc) with no problem. It's only when trying to the user with the Exalate script that it doesn't work.

        I've seen the docs about the Proxy User; but I don't recall setting one up. Where should I look to see the Proxy User to confirm they have the permissions they need ?



      2. Daniel Carvajal

        Hi Cameron 

        The instructions on setup and verification are here: Azure DevOps and Jira on-premise

        Kind regards,


      3. C M


        That's almost the same content before about what a proxy user "is" but not answering my question.

        I found where to update the PAT through (General Settings → Configure). I've created a new PAT with full permissions for testing with my account. My account is a member of the needed team of "Project Collection Administrator".

        So both conditions should be met :

        1. Proxy User is a member of "Project Collection Administrator"
        2. Proxy User PAT has work item manage and team reading permissions (it has all permissions atm for the sake of testing)


        def user = nodeHelper.getUserByEmail(replica.assignee.email)

        debug.error("User is: " + user)

        For users that do exist in our system (my email for example) this is still not working.
        The error print statement is always "User is: null"

        Anywhere I should check ? Any solutions ?

      4. Francis Martens (Exalate)

        Hi C M

        Make sure that the email parameter in the lookup function is properly capitalised.
        (we've seen problems there) and that the user you are looking up is part of the project team.

        I did a small test - but the functionality does work when all conditions are met

      CommentAdd your comment...