error-handling
This skill covers HTTP error codes, error response formats, and troubleshooting strategies for the Jira Cloud REST API.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
This skill covers HTTP error codes, error response formats, and troubleshooting strategies for the Jira Cloud REST API.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
This skill covers batch create, update, delete, and transition operations for the Jira Cloud REST API.
This skill covers pagination strategies for the Jira Cloud REST API, including offset-based and cursor-based pagination.
Complete endpoint reference for the Jira Cloud REST API v3.
This skill covers all authentication methods for the Jira Cloud REST API.
Complete JQL (Jira Query Language) syntax reference for searching issues in Jira Cloud.
This skill covers Jira Cloud REST API rate limiting policies, response headers, backoff strategies, and best practices for staying within limits.
| name | error-handling |
| description | This skill covers HTTP error codes, error response formats, and troubleshooting strategies for the Jira Cloud REST API. |
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