{"record":{"id":"d48a8d9295531cdb","repo":"kovidgoyal/kitty","slug":"unknown-action-ac","errorCode":null,"errorMessage":"Unknown action: {ac}","messagePattern":"Unknown action: (.+?)","errorType":"exception","errorClass":"RemoteControlErrorWithoutTraceback","httpStatus":null,"severity":"error","filePath":"kitty/rc/action.py","lineNumber":79,"sourceCode":"\n    def message_to_kitty(self, global_opts: RCOptions, opts: 'CLIOptions', args: ArgsType) -> PayloadType:\n        return {'action': ' '.join(args), 'self': opts.self, 'match_window': opts.match}\n\n    def response_from_kitty(self, boss: Boss, window: Window | None, payload_get: PayloadGetType) -> ResponseType:\n        w = self.windows_for_match_payload(boss, window, payload_get)\n        if w:\n            window = w[0]\n        ac = payload_get('action')\n        if not ac:\n            raise RemoteControlErrorWithoutTraceback('Must specify an action')\n\n        try:\n            consumed = boss.combine(str(ac), window, raise_error=True)\n        except (Exception, SystemExit) as e:\n            raise RemoteControlErrorWithoutTraceback(str(e))\n\n        if not consumed:\n            raise RemoteControlErrorWithoutTraceback(f'Unknown action: {ac}')\n        return None\n\n\naction = Action()\n","sourceCodeStart":61,"sourceCodeEnd":84,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kitty/rc/action.py#L61-L84","documentation":"Raised by kitty's @ action remote-control command when boss.combine() reports that no action was consumed, i.e. the given action name is not a known kitty action or keymap action definition. It signals an unrecognized action string rather than an execution failure, and is surfaced to the remote-control client as a clean error message.","triggerScenarios":"Calling 'kitten @ action <name>' where <name> is not a builtin action, an alias, or a defined key mapping action, e.g. 'kitten @ action nosuchthing' or a misnamed compound action 'scroll>page-down'.","commonSituations":"Action names that changed between kitty versions, typos, using map-definition syntax that requires a matching alias defined in kitty.conf, or passing arguments when none are expected so the whole string fails lookup.","solutions":["List valid actions: kitten @ ls or check the Actions section of the kitty docs / 'kitty +kitten show-key' docs","Use the exact action name, e.g. 'kitten @ action scroll_page_down'","If referencing a custom compound action, define it first in kitty.conf via map/action_alias and keep the name identical"],"exampleFix":"# before\nkitten @ action scrolldown\n\n# after\nkitten @ action scroll_line_down","handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try:\n    subprocess.run(['kitten', '@', 'action', name], check=True, capture_output=True, text=True)\nexcept subprocess.CalledProcessError as e:\n    if 'Unknown action' in e.stderr:\n        # name lookup failed; log and fall back to a known action\n        log.warning('unknown kitty action %s', name)\n    else:\n        raise","preventionTips":["Curate a whitelist of action names validated against your kitty version's docs","Test action names once at script startup with a cheap dry call before batch loops"],"tags":["kitty","remote-control","action","unknown-name"],"backgroundTag":"unknown-action-name","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}