Showing results for 
Search instead for 
Did you mean: 
Sign up Log in

getCustomFieldValue() always returns null in post function, although it works in Script Console

Yen-Wu Lo September 7, 2020


I'm running the latest JSD with Scriptrunner 6.7.0, and I have a simple portal like this:


I'm trying to retrieve the value from a Database Picker field called "Add Roles" in a post function set to trigger when the issue is resolved.

I have the following code, in the post function, to print the value of the field:

def customFieldManager = ComponentAccessor.getCustomFieldManager()

log.debug("Roles: ${issue.getCustomFieldValue(customFieldManager.getCustomFieldObjectsByName("Add Roles")[0])}")

 But when the post function runs, it always prints

Roles: null

despite the field is not empty.


However, when I try to do the same in Script Console, for example,

// Use the same issue
def issueKey = "PAP-39"
def issueManager = ComponentAccessor.getIssueManager()
def issue = issueManager.getIssueObject(issueKey)

log.debug("Roles: ${issue.getCustomFieldValue(customFieldManager.getCustomFieldObjectsByName("Add Roles")[0])}")

It successfully prints:

 Roles: [8, 9] // The options I selected in the Database Picker

 as expected.

Why does the same piece of code not work in post function, but in Script Console? I can confirm that the field is not hidden or read-only, and printing other fields in the post function using the same syntax always works.

1 answer

1 accepted

Suggest an answer

Log in or Sign up to answer
0 votes
Answer accepted
Yen-Wu Lo September 7, 2020

Found the answer here right after posting this...

It appears that I need to set the post function to be processed AFTER the issue is created and re-indexed, etc.


Hope this helps.

AUG Leaders

Atlassian Community Events