jira-python search_issues encodes jql string twice

Sunny Yee August 9, 2016

I'm using jira-python library 1.0.4, and can't get the following issue search to work.

jira.search_issues(jql_str="project=ABC")

It is throwing an exception:

    jira.exceptions.JIRAError: JiraError HTTP 400 url: https://jira.my.com/rest/api/2/searchjql=project%253DABC&validateQuery=True&startAt=0&maxResults=50

    response text = {"errorMessages":["Error in the JQL Query: The character '%' is a reserved JQL character. You must enclose it in a string or use the escape '\\u0025' instead. (line 1, character 8)"],"errors":{}}

It looks like 'project=ABC' is getting encoded twice, and I don't understand why and how to prevent it.  '=' -> '%25' -> '%253D'.  The url should be:

https://jira.my.com/rest/api/2/search?jql=project%3DABC&validateQuery=True&startAt=0&maxResults=50

Thanks for any help.

3 answers

1 accepted

1 vote
Answer accepted
Daniel Fortunov August 9, 2016

Perhaps the double-encoding problem is somehow caused by the HTTP -> HTTPS redirect?

0 votes
Sunny Yee August 9, 2016

Jeff,

Thanks so much.   Just having your sample script helped.   It was a careless mistake of using http on the server, instead of https, that caused the issue, though the symptom was strange.

0 votes
Jeff
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
August 9, 2016

Can you try upgrading to 1.0.7 (which is the latest version available via pypi)?

 

I just tried to run this myself and ran into no issues, on both 1.0.3 and 1.0.7.

from jira import JIRA
un = ''
pwd = ''
server = ''
jira = JIRA(basic_auth=(un, pwd), options={'server': server})
issues = jira.search_issues(jql_str="project=TBT")
print len(issues)

That returns a valid count of issues for the queried project (in my case TBT project)

Suggest an answer

Log in or Sign up to answer