{"record":{"id":"f2f0d77459e43c60","repo":"stablyai/orca","slug":"not-found","errorCode":"not-found","errorMessage":"jira_summary_lookup:not-found","messagePattern":"jira_summary_lookup:not-found","errorType":"error_code","errorClass":"JiraSummaryLookupError","httpStatus":null,"severity":"warning","filePath":"src/main/jira/issues.ts","lineNumber":704,"sourceCode":"  return withJiraDeadline(signal, ISSUE_SUMMARY_TIMEOUT_MS, async (requestSignal) => {\n    await acquire(requestSignal)\n    try {\n      const params = new URLSearchParams({ fields: ISSUE_SUMMARY_FIELDS.join(',') })\n      const issue = await settleJiraSummaryRead(\n        jiraRequest<JiraRecord>(\n          entry,\n          `${apiBasePath(entry.site)}/issue/${encodeURIComponent(key)}?${params.toString()}`,\n          { signal: requestSignal }\n        ),\n        requestSignal\n      )\n      return mapJiraIssue(entry.site, issue)\n    } catch (error) {\n      if (isAuthError(error)) {\n        throw new JiraSummaryLookupError('auth', error)\n      }\n      if (getErrorStatus(error) === 404) {\n        throw new JiraSummaryLookupError('not-found', error)\n      }\n      throw new JiraSummaryLookupError('read-failed', error)\n    } finally {\n      release()\n    }\n  })\n}\n\nexport async function createIssue(args: JiraCreateIssueArgs): Promise<JiraCreateIssueResult> {\n  const entry = getClients(args.siteId)[0]\n  if (!entry) {\n    return { ok: false, error: 'Not connected to Jira.' }\n  }\n  const title = args.title.trim()\n  if (!title) {\n    return { ok: false, error: 'Title is required.' }\n  }\n","sourceCodeStart":686,"sourceCodeEnd":722,"githubUrl":"https://github.com/stablyai/orca/blob/1136503c6a231a16dce8f921f6fadb63d181e8db/src/main/jira/issues.ts#L686-L722","documentation":"Thrown inside getIssueSummary's request body when the issue GET returns HTTP 404. Wrapped as JiraSummaryLookupError code 'not-found'. This is expected for deleted/unseen issues and is usually not a hard failure — callers often treat it as 'no summary available'.","triggerScenarios":"The issue key does not exist, was deleted, is in a project the user cannot see, or contains a typo. Also when the key format is right but the issue lives on a different site.","commonSituations":"Commit message or branch references an old issue key that was removed. Cross-site issue link where the wrong siteId was selected. Permission-limited project.","solutions":["Treat code 'not-found' as a soft 'no summary' rather than an error in the UI.","Verify the key is correct and belongs to the chosen site.","If permission is the cause, request access in Jira."],"exampleFix":"// before\nconst issue = await getIssueSummary(key, siteId)\n// after\ntry { return await getIssueSummary(key, siteId) }\ncatch (e) { if (getJiraSummaryLookupErrorCode(e) === 'not-found') return null; throw e }","handlingStrategy":"try-catch","validationCode":"if (!await issueExists(key, siteId)) return null","typeGuard":"function isJiraSummaryNotFoundError(e: unknown): boolean {\n  return getJiraSummaryLookupErrorCode(e) === 'not-found'\n}","tryCatchPattern":"try { return await getIssueSummary(key, siteId, signal) }\ncatch (e) { if (getJiraSummaryLookupErrorCode(e) === 'not-found') return null; throw e }","preventionTips":["Treat code 'not-found' as a soft 'no summary', not an error.","Verify the issue key and site pairing before lookup.","Filter deleted/unknown keys from commit-message scans."],"tags":["jira","not-found","summary-lookup"],"backgroundTag":null,"analyzedSha":"1136503c6a231a16dce8f921f6fadb63d181e8db","analyzedAt":"2026-08-12T23:15:58.167Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}