Help us improve
Share bugs, ideas, or general feedback.
From jiragenius
This skill covers HTTP error codes, error response formats, and troubleshooting strategies for the Jira Cloud REST API.
npx claudepluginhub promptclickrun/jiragenius --plugin jirageniusHow this skill is triggered — by the user, by Claude, or both
Slash command
/jiragenius:error-handlingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill covers HTTP error codes, error response formats, and troubleshooting strategies for the Jira Cloud REST API.
Manages Jira Cloud issues via jira CLI with JSON output: create, view, update, search issues, fetch hierarchies, manage sprints.
Core JIRA issue CRUD - create bugs/tasks/stories, get issue details, update fields, delete issues. TRIGGERS: 'show me [KEY]', 'get issue [KEY]', 'view issue', 'create a bug/task/story', 'update [KEY]', 'delete [KEY]', 'details of [KEY]', 'look up [KEY]', 'what's in [KEY]'. NOT FOR: epics (use jira-agile), transitions/status changes (use jira-lifecycle), comments/attachments (use jira-collaborate), time tracking (use jira-time), bulk operations on 10+ issues (use jira-bulk), dependencies/blockers (use jira-relationships), branch names/PR descriptions (use jira-dev).
Share bugs, ideas, or general feedback.
This skill covers HTTP error codes, error response formats, and troubleshooting strategies for the Jira Cloud REST API.
| Code | Meaning | Typical Use |
|---|---|---|
200 | OK | Successful GET, PUT |
201 | Created | Successful POST (resource created) |
204 | No Content | Successful DELETE or PUT with no response body |
| Code | Meaning | Common Cause |
|---|---|---|
400 | Bad Request | Malformed JSON, invalid field values, missing required fields |
401 | Unauthorized | Invalid or missing credentials |
403 | Forbidden | Valid credentials but insufficient permissions |
404 | Not Found | Resource does not exist or user lacks browse permission |
405 | Method Not Allowed | HTTP method not supported for this endpoint |
409 | Conflict | Resource already exists or version conflict |
413 | Content Too Large | Request body exceeds size limit |
422 | Unprocessable Entity | Semantically invalid request |
429 | Too Many Requests | Rate limit exceeded |
| Code | Meaning | Action |
|---|---|---|
500 | Internal Server Error | Retry after delay; report if persistent |
502 | Bad Gateway | Temporary; retry after delay |
503 | Service Unavailable | Jira is under maintenance or overloaded |
504 | Gateway Timeout | Request took too long; simplify query or retry |
Jira Cloud returns errors in this JSON format:
{
"errorMessages": [
"Issue does not exist or you do not have permission to see it."
],
"errors": {
"summary": "You must specify a summary of the issue.",
"customfield_10001": "This field is required."
}
}
errorMessages — Array of general error messageserrors — Object mapping field names to field-specific errorsInvalid ADF (Atlassian Document Format):
{
"errorMessages": [],
"errors": {
"description": "Operation value must be a valid Atlassian Document"
}
}
Solution: Ensure description/comment uses proper ADF structure with type: "doc", version: 1, and valid content nodes.
Missing required field:
{
"errorMessages": [],
"errors": {
"project": "project is required",
"issuetype": "issuetype is required"
}
}
Solution: Include all required fields. At minimum: project, issuetype, and summary.
Invalid field value:
{
"errorMessages": [],
"errors": {
"priority": "Priority name 'Urgent' is not valid"
}
}
Solution: Use GET /rest/api/3/priority to list valid priority names.
{
"message": "Client must be authenticated to access this resource."
}
Troubleshooting:
{
"errorMessages": [
"You do not have the permission to see the specified issue."
],
"errors": {}
}
Troubleshooting:
GET /rest/api/3/mypermissions?projectKey=PROJ{
"errorMessages": [
"Issue does not exist or you do not have permission to see it."
],
"errors": {}
}
Troubleshooting:
BROWSE_PROJECTS permission{
"errorMessages": [
"A project with that name already exists."
],
"errors": {}
}
Solution: Choose a unique name/key, or update the existing resource instead.
HTTP/1.1 429 Too Many Requests
Retry-After: 30
Solution: See the Rate Limiting skill. Implement exponential backoff.
When creating or editing issues, Jira validates fields against:
Use the create metadata endpoint to discover valid fields and values:
curl -X GET \
-H "Authorization: Basic $(echo -n '$JIRA_USER_EMAIL:$JIRA_API_TOKEN' | base64)" \
-H "Accept: application/json" \
"https://{domain}.atlassian.net/rest/api/3/issue/createmeta?projectKeys=PROJ&issuetypeNames=Task&expand=projects.issuetypes.fields"
curl -X GET \
-H "Authorization: Basic $(echo -n '$JIRA_USER_EMAIL:$JIRA_API_TOKEN' | base64)" \
-H "Accept: application/json" \
"https://{domain}.atlassian.net/rest/api/3/issue/PROJ-123/editmeta"
For transient errors (429, 500, 502, 503, 504):
Retry-After header if presentmin(2^attempt * 1s, 60s)wait_time * (0.5 + random(0, 0.5))-v to see request/response headersX-RateLimit-Remaining response header for rate limit statusGET /rest/api/3/serverInfo to verify connectivity