stablyai/orca · error · Error
${created.current.error}
Error message
${created.current.error} What it means
Thrown inside the `runGitWorkflow` runner for create-PR. `runMobileHostedReviewCreateIntent` returns an outcome discriminated by `ok`; when `ok: false` its `error` string is re-thrown so the workflow records the failure. The message is dynamic — it is whatever the hosted-review intent produced (blocked preflight, commit failure, push failure, or PR-create API error), surfaced via `setActionError` on progress callbacks too.
Source
Thrown at mobile/src/source-control/use-mobile-create-pr-runner.ts:84
return
}
const created: { current: MobileHostedReviewCreateIntentRunOutcome | null } = {
current: null
}
let progress: MobileHostedReviewCreateIntentProgress | null = null
const ran = await runGitWorkflow(pushFirst ? 'push-create-pr' : 'create-pr', async () => {
created.current = await runMobileHostedReviewCreateIntent(client, worktreeId, {
branch,
title: branchLabel,
status,
commitMessage,
onProgress: (nextProgress: MobileHostedReviewCreateIntentProgress) => {
progress = nextProgress
setActionError(mobileHostedReviewCreateIntentProgressMessage(nextProgress))
}
})
if (!created.current.ok) {
throw new Error(created.current.error)
}
})
const outcome = created.current
if (outcome?.committed && mountedRef.current) {
setCommitMessage('')
}
if (!ran && outcome?.status !== undefined && mountedRef.current) {
await loadStatus({
preserveReadyOnFailure: true,
clearActionErrorOnSuccess: false,
force: true
})
}
if (!ran || !mountedRef.current || !outcome || !outcome.ok) {
if (!ran && outcome && isMobileHostedReviewCommitFailure(outcome, progress)) {
const outcomeStagedEntries = getMobileCommitFailureStagedEntries(outcome.status?.entries)
recordCommitFailure({
error: outcome.error,View on GitHub (pinned to 1136503c6a)
Solutions
- Read the surfaced `error` string — it names the exact failed step (commit/push/create).
- Ensure there are staged changes and no unresolved conflicts before creating the PR.
- Push the branch first and confirm an upstream is configured (`git push -u origin <branch>`).
- Re-authenticate the hosted-review provider token if the error cites permission/quota.
Defensive patterns
Strategy: try-catch
Type guard
// Narrow the outcome before throwing so the runner can branch on commit vs PR failure.
function isFailedIntent(o: MobileHostedReviewCreateIntentRunOutcome): o is Extract<MobileHostedReviewCreateIntentRunOutcome, { ok: false }> {
return !o.ok
} Try / catch
// runGitWorkflow already wraps this; let the throw propagate but branch on outcome.
const ran = await runGitWorkflow('create-pr', async () => {
created.current = await runMobileHostedReviewCreateIntent(client, worktreeId, input)
if (!created.current.ok) throw new Error(created.current.error)
})
if (!ran && created.current && isMobileHostedReviewCommitFailure(created.current, progress)) {
recordCommitFailure({ ... }) // recover the commit snapshot
} Prevention
- Stage changes and confirm an upstream before invoking create-PR.
- Capture the progress state so commit vs push vs create failures can be distinguished.
- Refresh provider tokens before the flow to avoid mid-flow auth errors.
When it happens
Trigger: Invoking the create-PR runner (`pushFirst` true or false) where `runMobileHostedReviewCreateIntent` returns `{ ok: false, error }`. Concrete causes: commit preflight blocked the PR (nothing staged / unresolved conflicts), `git.push` failed (no upstream, rejected non-fast-forward), or the hosted-review create RPC returned an error from the provider (GitHub/GitLab quota, auth, branch protection).
Common situations: Trying to create a PR with no staged changes; branch has no upstream tracking; force-push blocked by branch protection; provider token expired or lacks scope; network blip during the multi-step commit→push→create flow.
Related errors
- Source control action failed
- Unable to resolve branch base
- Failed to load commit history
- Unable to load committed changes
- Unable to load source control
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/cce3d6ac1014a763.
Report an issue: GitHub.