stablyai/orca · error · JiraSummaryLookupError
read-failed
read-failed
Error message
jira_summary_lookup:read-failed
What it means
Thrown inside getIssueSummary's request body for any failure that is neither auth nor 404 — network errors, timeouts (withJiraDeadline expires), 5xx responses, or aborts. This is the catch-all JiraSummaryLookupError code 'read-failed' with the original error as cause.
Source
Thrown at src/main/jira/issues.ts:706
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.' }
}
await acquire()
try {View on GitHub (pinned to 1136503c6a)
Solutions
- Retry with backoff for code 'read-failed' (transient by nature).
- Increase ISSUE_SUMMARY_TIMEOUT_MS if payloads are consistently slow.
- Check the cause error for status: 5xx → Atlassian side; network → local connectivity.
- Abort gracefully if the user navigated away (signal.aborted).
Example fix
// before
try { await getIssueSummary(key, siteId) } catch (e) { giveUp() }
// after
try { return await getIssueSummary(key, siteId) }
catch (e) {
if (getJiraSummaryLookupErrorCode(e) === 'read-failed' && !signal.aborted) { await backoffRetry(() => getIssueSummary(key, siteId, signal)) }
else throw e
} Defensive patterns
Strategy: retry
Validate before calling
if (signal.aborted) return null
Type guard
function isJiraSummaryReadFailedError(e: unknown): boolean {
return getJiraSummaryLookupErrorCode(e) === 'read-failed'
} Try / catch
try { return await getIssueSummary(key, siteId, signal) }
catch (e) {
if (getJiraSummaryLookupErrorCode(e) === 'read-failed' && !signal.aborted) { await sleep(backoffMs); return getIssueSummary(key, siteId, signal) }
throw e
} Prevention
- Retry with backoff for transient 'read-failed'.
- Abort cleanly when the user navigates away (signal.aborted).
- Tune ISSUE_SUMMARY_TIMEOUT_MS for consistently slow payloads.
When it happens
Trigger: Network drop or proxy failure during the GET, the withJiraDeadline timeout (ISSUE_SUMMARY_TIMEOUT_MS) elapsing, the AbortSignal aborting, or Jira returning 500/502/503.
Common situations: Flaky connectivity, VPN interruption, Atlassian incident, or a very large/slow issue payload exceeding the summary timeout.
Related errors
- Timed out loading check details.
- Translation request failed with status ${response.status}
- mobile pairing timed out
- request timed out after ${timeoutMs / 1000} seconds
- Remote connection dropped. Click Reconnect on the SSH target
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/88a7cf6fccfaf973.
Report an issue: GitHub.