stablyai/orca · error · RuntimeClientError

accessibility_error

accessibility_error

Error message

desktop provider returned no app

What it means

normalizeBridgeApp throws accessibility_error if the bridge response or a window entry has no `app` object. Every snapshot and window-list entry must identify its owning app; a missing app indicates a malformed provider response.

Source

Thrown at src/main/computer/desktop-script-snapshot-rendering.ts:143

function renderTreeText(snapshot: BridgeSnapshot): string {
  const appRef = snapshot.app.bundleId ?? snapshot.app.bundleIdentifier ?? snapshot.app.name
  const lines = [
    `App=${appRef} (pid ${snapshot.app.pid})`,
    `Window: "${sanitize(snapshot.windowTitle ?? snapshot.app.name)}", App: ${sanitize(snapshot.app.name)}.`,
    '',
    ...(snapshot.treeLines ?? [])
  ]
  if (snapshot.selectedText) {
    lines.push('', `Selected text: [${sanitize(snapshot.selectedText)}]`)
  } else if (snapshot.focusedSummary) {
    lines.push('', `The focused UI element is ${sanitize(snapshot.focusedSummary)}.`)
  }
  return lines.join('\n')
}

export function normalizeBridgeApp(app: BridgeResponse['app'] | BridgeWindow['app'] | undefined) {
  if (!app) {
    throw new RuntimeClientError('accessibility_error', 'desktop provider returned no app')
  }
  return {
    name: app.name,
    bundleId: app.bundleId ?? app.bundleIdentifier ?? null,
    pid: app.pid
  }
}

function sanitize(value: string): string {
  return value.replaceAll('\n', ' ').replaceAll('\r', ' ')
}

View on GitHub (pinned to 1136503c6a)

Solutions

  1. Re-run the snapshot or window listing.
  2. Confirm the target app is still running.
  3. Update the provider script to a conformant version.
Defensive patterns

Strategy: fallback

Try / catch

try {
  return await client.snapshot(params)
} catch (err) {
  if (err instanceof RuntimeClientError && err.code === 'accessibility_error' && /no app/.test(err.message)) {
    // confirm the target app is running, then retry
  }
  throw err
}

Prevention

When it happens

Trigger: Provider returns a snapshot or window without an app field; a partial response after the target app crashed mid-call.

Common situations: Provider bug; app terminated during the call; provider version with schema drift omitting the app object.

Related errors


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