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
- Re-run the snapshot or window listing.
- Confirm the target app is still running.
- 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
- Verify the target app is running before snapshot.
- Keep the provider script current.
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
- accessibility_error
- No top-level AT-SPI window is available for {app}
- appNotFound("{query}")
- Only Hermes cron creation and editing are supported.
- unsupported_capability
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/0d5cb5478d8e0053.
Report an issue: GitHub.