stablyai/orca · warning · Error

error

Error message

error

What it means

Thrown by the keybindings:openFile IPC handler when Electron's shell.openPath returns a non-empty error string. shell.openPath returns a string on failure (empty string on success); the handler surfaces that string verbatim as the Error message. The literal message 'error' means Electron returned the generic failure string 'error' (or a localized equivalent), indicating the OS declined to open the keybindings file.

Source

Thrown at src/main/ipc/keybindings.ts:54

      broadcastKeybindingsChanged(snapshot)
      onChanged?.()
      return snapshot
    }
  )

  ipcMain.handle('keybindings:reload', () => {
    const snapshot = service.reload()
    broadcastKeybindingsChanged(snapshot)
    onChanged?.()
    return snapshot
  })

  ipcMain.handle('keybindings:openFile', async () => {
    const snapshot = service.ensureFile()
    authorizeExternalPath(snapshot.path)
    const error = await shell.openPath(snapshot.path)
    if (error) {
      throw new Error(error)
    }
    return snapshot
  })

  ipcMain.handle('keybindings:revealFile', () => {
    const snapshot = service.ensureFile()
    authorizeExternalPath(snapshot.path)
    shell.showItemInFolder(snapshot.path)
    return snapshot
  })
}

View on GitHub (pinned to 1136503c6a)

Solutions

  1. Set a default application for the keybindings file extension in the OS.
  2. Verify the config directory and file are readable/executable by the current user.
  3. Retry once; transient OS launch failures can succeed on a second attempt.
  4. If persistent, use the keybindings:revealFile handler to open the containing folder in the file manager and open the file manually.
Defensive patterns

Strategy: try-catch

Try / catch

try {
  await ipc.call('keybindings:openFile')
} catch (e) {
  // Electron openPath failed; fall back to revealing the file in the file manager.
  await ipc.call('keybindings:revealFile')
}

Prevention

When it happens

Trigger: Invoking the keybindings:openFile IPC after the keybindings file is ensured to exist, when the host OS fails to launch the default application for that path. The file was just created via service.ensureFile() and authorizeExternalPath passed, but the OS open call fails.

Common situations: No default application is associated with the file type (e.g. .json or .kdl on a fresh OS install). The file path points to a location the OS sandbox restricts. A transient OS error, missing default editor, or the file was deleted between ensureFile and openPath. Permission issues on the config directory.

Related errors


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