Qordinate acts as your intelligent layer between apps like Jira and your life. We handle the messy API connections and coordination so you can focus on what actually matters.
401 UnauthorizedHTTP 401 Unauthorized
{
"errorMessages": [
"Client must be authenticated to access this resource."
],
"errors": {}
}
403 ForbiddenHTTP 403 Forbidden
{
"errorMessages": [
"You do not have permission to perform this operation."
],
"errors": {}
}
400 Bad RequestHTTP 400 Bad Request
{
"errorMessages": [
"The request contains invalid properties."
],
"errors": {
"summary": "Summary is required.",
"project": "project is required"
}
}
404 Not FoundHTTP 404 Not Found
{
"errorMessages": [
"Issue does not exist or you do not have permission to see it."
],
"errors": {}
}
429 Too Many RequestsHTTP 429 Too Many Requests
{
"errorMessages": [
"Too many requests. Please try again later."
],
"errors": {}
}
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1640995200
jira.JIRAErrorTraceback (most recent call last):
File "jira_script.py", line 10, in <module>
jira = JIRA(server='https://invalid.atlassian.net', basic_auth=('user', 'invalid_password'))
File "/usr/local/lib/python3.9/site-packages/jira/client.py", line 456, in __init__
raise JIRAError(text)
jira.JIRAError: Client must be authenticated to access this resource.
JiraApiErrorJiraApiError: Issue does not exist or you do not have permission to see it.
at JiraAPI._request (/node_modules/jira-client/dist/client.js:234:19)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async JiraAPI.getIssue (/node_modules/jira-client/dist/api.js:123:12)
at async main (/app/index.js:23:18)
{
statusCode: 404,
body: {
errorMessages: [
'Issue does not exist or you do not have permission to see it.'
],
errors: {}
},
headers: {
'content-type': 'application/json;charset=UTF-8'
}
}
PROJECT_NOT_FOUNDHTTP 404 Not Found
{
"errorMessages": [
"Project 'INVALID' not found or you do not have permission to view it."
],
"errors": {}
}
ISSUE_TYPE_NOT_FOUNDHTTP 400 Bad Request
{
"errorMessages": [],
"errors": {
"issuetype": "Issue type is required."
}
}
FIELD_VALIDATION_ERRORHTTP 400 Bad Request
{
"errorMessages": [],
"errors": {
"customfield_10001": "Field 'customfield_10001' cannot be set. It is not on the appropriate screen, or unknown.",
"summary": "Summary must be less than 255 characters."
}
}
WORKFLOW_VALIDATION_ERRORHTTP 400 Bad Request
{
"errorMessages": [
"Workflow validation failed."
],
"errors": {
"assignee": "Assignee is required for this transition."
}
}
TRANSITION_NOT_FOUNDHTTP 404 Not Found
{
"errorMessages": [
"Transition id '999' is not valid for this issue."
],
"errors": {}
}
PERMISSION_DENIEDHTTP 403 Forbidden
{
"errorMessages": [
"You cannot edit this issue. It may be locked or you may not have permission to edit it."
],
"errors": {}
}
USER_NOT_FOUNDHTTP 404 Not Found
{
"errorMessages": [
"User 'nonexistent@example.com' not found."
],
"errors": {}
}
RATE_LIMIT_EXCEEDEDHTTP 429 Too Many Requests
{
"errorMessages": [
"API rate limit exceeded. Please try again later."
],
"errors": {}
}
Retry-After: 60
WEBHOOK_URL_INVALIDHTTP 400 Bad Request
{
"errorMessages": [
"The webhook URL is invalid. Webhook URLs must use HTTPS."
],
"errors": {}
}
Connection TimeoutError: connect ETIMEDOUT 104.192.143.1:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1146:16)
SSL Certificate ErrorError: unable to verify the first certificate
at TLSSocket.onConnectSecure (_tls_wrap.js:1504:34)
at TLSSocket.emit (events.js:314:20)
at TLSSocket._finishInit (_tls_wrap.js:945:8)
at TLSWrap.ssl.onhandshakedone (_tls_wrap.js:719:12)
INVALID_JQLHTTP 400 Bad Request
{
"errorMessages": [
"The JQL query is invalid."
],
"errors": {
"jql": "Field 'invalidfield' does not exist or you do not have permission to view it."
}
}