Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

JsonParseException in search api call using scriptrunner/groovy script

Uwe Czienskowski
November 9, 2023

Hi,
I have a scriptrunner/groovy script that will be called on an "issue changed" event in Jira Cloud and checks at the very beginning whether the current issue belongs to an open sprint using a call to the search api:

// ************************************* script **************************************

logger.info("current issue: ${issue.key}")

def jqlIssue = 'project = LKAPPL AND issueKey="'+ issue.key +'" AND Sprint in OpenSprints()'

logger.info("JQL query: ${jqlIssue}")

def findIssue = get("/rest/api/3/search")
        .queryString("jql", jqlIssue)
        .asObject(Map)
        .body
        .issues as List<Map>

if (findIssue.size()<=0){
    logger.info("Issue ${issue.key} does not belong to the current sprint")
    return
}

// ... remaining code (automatic numbering of agenda items) omitted
// **********************************************************************************

 

Usually, the above script works fine:

***************************** successful execution log *****************************

2023-11-09 14:34:20.918 INFO - current issue: LKAPPL-619

2023-11-09 14:34:20.920 INFO - JQL query: project = LKAPPL AND issueKey="LKAPPL-619" AND Sprint in OpenSprints()

2023-11-09 14:34:21.661 INFO - Serializing object into 'interface java.util.Map'

2023-11-09 14:34:21.662 INFO - GET /rest/api/3/search?jql=project+%3D+LKAPPL+AND+issueKey%3D%22LKAPPL-619%22+AND+Sprint+in+OpenSprints%28%29 asObject Request Duration: 739ms

2023-11-09 14:34:21.664 INFO - Issue LKAPPL-619 does not belong to the current sprint

************************************************************************************

 

Sometimes, however, this check creates the following error in the log (and execution fails):

******************************** failing execution log *******************************

2023-11-09 14:34:19.662 INFO - current issue: LKAPPL-619

2023-11-09 14:34:19.683 INFO - JQL query: project = LKAPPL AND issueKey="LKAPPL-619" AND Sprint in OpenSprints()

2023-11-09 14:34:21.569 INFO - Serializing object into 'interface java.util.Map'

2023-11-09 14:34:21.572 INFO - GET /rest/api/3/search?jql=project+%3D+LKAPPL+AND+issueKey%3D%22LKAPPL-619%22+AND+Sprint+in+OpenSprints%28%29 asObject Request Duration: 1847ms

2023-11-09 14:34:21.573 WARN - GET request to /rest/api/3/search?jql=project+%3D+LKAPPL+AND+issueKey%3D%22LKAPPL-619%22+AND+Sprint+in+OpenSprints%28%29 returned an error code: status: 403 - Forbidden

body: java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')

 at [Source: (StringReader); line: 10, column: 2]

2023-11-09 14:34:21.602 ERROR - Cannot get property 'issues' on null object on line 8

2023-11-09 14:34:21.608 ERROR - Class: com.adaptavist.sr.cloud.events.WebhookExecution, Config: null

*************************************************************************************

 

Does anybody have an idea what the problem might be? Any idea welcome, in particular hints how to track those kinds of problems better than just by logging.

Best,

UweC

0 answers

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events