stablyai/orca · error · Error
${formatKeybindingList([blockingConflict.binding], keybindin
Error message
${formatKeybindingList([blockingConflict.binding], keybindingPlatform)} conflicts with another shortcut. What it means
Thrown by writeKeybindingOverride when the candidate binding set produces a conflict that includes the action being written (findKeybindingConflicts finds a conflict whose actionIds include actionId). The message shows the human-readable binding (platform-formatted) that collides. The write is aborted so the file never holds two actions on the same chord.
Source
Thrown at src/main/keybindings/keybinding-file.ts:449
): KeybindingFileSnapshot {
if (!isKeybindingActionId(actionId)) {
throw new Error(`Unknown keybinding action "${actionId}".`)
}
const normalizedBindings = normalizeWriteBindingValue(actionId, bindings)
const keybindingPlatform = getKeybindingPlatform(platform)
const currentSnapshot = readKeybindingFile(path, platform)
const candidateOverrides = { ...currentSnapshot.overrides }
if (normalizedBindings === null) {
delete candidateOverrides[actionId]
} else {
candidateOverrides[actionId] = normalizedBindings
}
const blockingConflict = findKeybindingConflicts(keybindingPlatform, candidateOverrides).find(
(conflict) => conflict.actionIds.includes(actionId)
)
if (blockingConflict) {
throw new Error(
`${formatKeybindingList([blockingConflict.binding], keybindingPlatform)} conflicts with another shortcut.`
)
}
return writeActivePlatformSection(
path,
platform,
currentSnapshot.commonOverrides,
(activePlatform) => {
if (normalizedBindings === null) {
// Why: Settings edits are scoped to the current platform. A hand-authored
// common binding may be intentional for other OSes, so reset only removes
// the platform-specific mask instead of deleting the shared value.
delete activePlatform[actionId]
} else {
activePlatform[actionId] = normalizedBindings
}
}View on GitHub (pinned to 1136503c6a)
Solutions
- Pick a different chord for the action, or clear/rebind the conflicting action first.
- Pass null for the conflicting action's override to unset it, then write yours.
- Inspect currentSnapshot.overrides for the duplicate chord before writing.
- Use formatKeybindingList output in the message to identify the exact colliding chord.
Example fix
// before writeKeybindingOverride(path, platform, 'cmd.a', ['Cmd+P']) // Cmd+P taken by cmd.b // after writeKeybindingOverride(path, platform, 'cmd.b', null) writeKeybindingOverride(path, platform, 'cmd.a', ['Cmd+P'])
Defensive patterns
Strategy: validation
Validate before calling
const conflicts = findKeybindingConflicts(getKeybindingPlatform(platform), candidateOverrides).filter((c) => c.actionIds.includes(actionId)) if (conflicts.length) await promptResolveConflict(conflicts[0])
Type guard
function hasBlockingConflict(platform: NodeJS.Platform, overrides: KeybindingOverrides, actionId: string): boolean {
return findKeybindingConflicts(getKeybindingPlatform(platform), overrides).some((c) => c.actionIds.includes(actionId))
} Try / catch
try { writeKeybindingOverride(path, platform, actionId, bindings) }
catch (e) { if (/conflicts with another shortcut/.test(String((e as Error).message))) await promptResolveConflict(e.message); else throw e } Prevention
- Check findKeybindingConflicts before writing.
- Clear the conflicting action's override (pass null) first.
- Surface the colliding chord (from the error message) to the user.
When it happens
Trigger: Assigning a chord already used by another action on the same platform — e.g. binding 'Cmd+P' to two different commands, or a chord that overlaps a system/pinned shortcut. Conflicts are scoped to the active platform's overrides.
Common situations: User picks a chord already taken. Importing a preset that overlaps existing overrides. Cross-platform file where the same chord is fine on one OS but collides on the active one.
Related errors
- Use a string array or null.
- Unknown keybinding action "${actionId}".
- invalid_argument
- Could not read keybindings file.
- Package version is not valid semver: ${baseVersion}
AI-assisted analysis of stablyai/orca@1136503c6a (2026-08-12).
Data as JSON: /api/errors/2c3cdb21af6e6fb0.
Report an issue: GitHub.