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

  1. Read the surfaced `error` string — it names the exact failed step (commit/push/create).
  2. Ensure there are staged changes and no unresolved conflicts before creating the PR.
  3. Push the branch first and confirm an upstream is configured (`git push -u origin <branch>`).
  4. 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

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


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