stablyai/orca · warning · JiraSummaryLookupError

not-found

not-found

Error message

jira_summary_lookup:not-found

What it means

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'.

Source

Thrown at src/main/jira/issues.ts:704

  return withJiraDeadline(signal, ISSUE_SUMMARY_TIMEOUT_MS, async (requestSignal) => {
    await acquire(requestSignal)
    try {
      const params = new URLSearchParams({ fields: ISSUE_SUMMARY_FIELDS.join(',') })
      const issue = await settleJiraSummaryRead(
        jiraRequest<JiraRecord>(
          entry,
          `${apiBasePath(entry.site)}/issue/${encodeURIComponent(key)}?${params.toString()}`,
          { signal: requestSignal }
        ),
        requestSignal
      )
      return mapJiraIssue(entry.site, issue)
    } catch (error) {
      if (isAuthError(error)) {
        throw new JiraSummaryLookupError('auth', error)
      }
      if (getErrorStatus(error) === 404) {
        throw new JiraSummaryLookupError('not-found', error)
      }
      throw new JiraSummaryLookupError('read-failed', error)
    } finally {
      release()
    }
  })
}

export async function createIssue(args: JiraCreateIssueArgs): Promise<JiraCreateIssueResult> {
  const entry = getClients(args.siteId)[0]
  if (!entry) {
    return { ok: false, error: 'Not connected to Jira.' }
  }
  const title = args.title.trim()
  if (!title) {
    return { ok: false, error: 'Title is required.' }
  }

View on GitHub (pinned to 1136503c6a)

Solutions

  1. Treat code 'not-found' as a soft 'no summary' rather than an error in the UI.
  2. Verify the key is correct and belongs to the chosen site.
  3. If permission is the cause, request access in Jira.

Example fix

// before
const issue = await getIssueSummary(key, siteId)
// after
try { return await getIssueSummary(key, siteId) }
catch (e) { if (getJiraSummaryLookupErrorCode(e) === 'not-found') return null; throw e }
Defensive patterns

Strategy: try-catch

Validate before calling

if (!await issueExists(key, siteId)) return null

Type guard

function isJiraSummaryNotFoundError(e: unknown): boolean {
  return getJiraSummaryLookupErrorCode(e) === 'not-found'
}

Try / catch

try { return await getIssueSummary(key, siteId, signal) }
catch (e) { if (getJiraSummaryLookupErrorCode(e) === 'not-found') return null; throw e }

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12). Data as JSON: /api/errors/f2f0d77459e43c60. Report an issue: GitHub.