stablyai/orca · error · Error
response.error.message
Error message
response.error.message
What it means
The github.workItem RPC returned an RpcFailure (response.ok === false) when looking up a single GitHub issue or PR by repo-scoped number. The call passes { repo: 'id:<repoId>', number } and expects a GitHubWorkItem or null on success. A failure means the host could not reach GitHub or the repo integration is misconfigured.
Source
Thrown at mobile/src/tasks/smart-source-paste-intent.ts:137
resolved = null
}
cache.set(repo.id, resolved ?? null)
}
if (slugsEqual(resolved ?? null, slug)) {
return repo
}
}
return null
}
export async function lookupGitHubItemByNumber(
client: RpcClient,
repoId: string,
number: number
): Promise<GitHubWorkItem | null> {
const response = await client.sendRequest('github.workItem', { repo: `id:${repoId}`, number })
if (!response.ok) {
throw new Error(response.error.message)
}
const item = (response as RpcSuccess).result as GitHubWorkItem | null
return item ? { ...item, repoId } : null
}
export async function lookupGitHubItemByOwnerRepo(
client: RpcClient,
repoId: string,
slug: RepoSlug,
number: number,
type: 'issue' | 'pr'
): Promise<GitHubWorkItem | null> {
const response = await client.sendRequest('github.workItemByOwnerRepo', {
repo: `id:${repoId}`,
owner: slug.owner,
ownerRepo: slug.repo,
...(slug.host ? { host: slug.host } : {}),
number,View on GitHub (pinned to 1136503c6a)
Solutions
- Check response.error.code: 'method_not_found' → degrade to the search-based path; 'unauthorized' → re-pair.
- Catch and return null (item not resolvable) so the paste flow falls back to a search.
- Verify the repo has a GitHub upstream configured via repo metadata before calling.
- Retry once after reconnect for transient transport errors.
Example fix
// before
if (!response.ok) {
throw new Error(response.error.message)
}
// after — degrade to null so the picker falls back to search
if (!response.ok) {
if (response.error.code === 'method_not_found' || response.error.code === 'not_found') {
return null
}
throw new Error(response.error.message)
} Defensive patterns
Strategy: fallback
Validate before calling
// Check GitHub is configured before lookup
const hasGithub = await client.sendRequest('github.repoSlug', { repo: `id:${repoId}` })
if (!hasGithub.ok && hasGithub.error.code === 'method_not_found') {
return null // GitHub not available
} Type guard
function isRpcFailure(r: RpcResponse): r is RpcFailure {
return !r.ok
} Try / catch
try {
const item = await lookupGitHubItemByNumber(client, repoId, number)
} catch (e) {
// Fall back to search
return null
} Prevention
- Degrade to null (not-found) so the paste flow falls back to a search.
- Check for method_not_found and not_found codes specifically.
- Verify the repo has a GitHub upstream before lookup.
When it happens
Trigger: GitHub integration not configured for the repo on the host; the repo's GitHub token expired or was revoked; the host returned 'method_not_found' (older runtime without github.workItem); a transport-level failure mid-call.
Common situations: User pastes a #123 number into the smart source picker for a repo whose GitHub remote isn't linked on the host; host's GitHub OAuth token scope was reduced; mixed mobile/desktop versions; relay disconnect during lookup.
Related errors
- response.error.message
- ${response.error.message}
- response.error.message
- GitHub request failed ${res.status} ${res.statusText}: ${bod
- Unable to read markdown
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/6347923762e5a66f.
Report an issue: GitHub.