{"record":{"id":"255b9f0675824f88","repo":"kovidgoyal/kitty","slug":"this-should-be-run-as-kitten-dnd","errorCode":null,"errorMessage":"This should be run as kitten dnd","messagePattern":"This should be run as kitten dnd","errorType":"console","errorClass":"SystemExit","httpStatus":null,"severity":"warning","filePath":"kittens/dnd/main.py","lineNumber":84,"sourceCode":"\nAny arguments on the command line are assumed to be files and directories to drag.\nThey will be dragged as the text/uri-list MIME type which can then be dropped into any\nfile manager or similar program to copy the files.\n\nIf the text/uri-list MIME type is dropped onto this window, the files and directories in it are\ncopied into the current working directory. When dragging from this window, if a move operation is\nperformed when dropping and the drop is to a remote machine, the files and directories to drag and deleted.\n\nIf data is present on STDIN it is set as text/plain when dragging, unless text/plain is specified via --drag.\nAny text/plain data that is dropped onto this window is output to STDOUT, if STDOUT is connected to a file, otherwise it\nis discarded.\n\nPress the Esc or Ctrl+C keys to quit the kitten at any time, cancelling any in progress drag.\n\"\"\"\n\nusage = '[files to drag]'\nif __name__ == '__main__':\n    raise SystemExit('This should be run as kitten dnd')\nelif __name__ == '__doc__':\n    from kitty.simple_cli_definitions import CompletionSpec\n\n    cd = sys.cli_docs  # type: ignore\n    cd['usage'] = usage\n    cd['options'] = OPTIONS\n    cd['help_text'] = help_text\n    cd['short_desc'] = 'Perform drag and drop operations, even over SSH'\n    cd['args_completion'] = CompletionSpec.from_string('type:file mime:* group:Files')\n","sourceCodeStart":66,"sourceCodeEnd":94,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kittens/dnd/main.py#L66-L94","documentation":"macOS's requestAuthorizationWithOptions call failed while kitty was asking for alert/sound/badge notification permission (kitty/cocoa_window.m:719). The NSError localizedDescription is logged; granted is false so all pending notifications are drained (dropped) rather than delivered.","triggerScenarios":"First notification attempt on macOS triggers the permission request; the handler errors when the authorization subsystem is broken - e.g. running outside a proper app bundle (same root cause as UNUserNotificationCenter failures), parental controls, or MDM restrictions.","commonSituations":"kitty binary run outside its .app bundle, managed/restricted Macs, or a wedged notification daemon after an OS update.","solutions":["Run kitty from the installed kitty.app so the bundle identifier is resolvable.","Check System Settings > Notifications to see if kitty is listed; toggle or reset its entry.","Reboot or restart the notification service (killall usernoted) if permissions UI is wedged.","Update kitty to the latest release matching your macOS version."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Answer kitty's permission prompt on first notification.","Run from the proper app bundle so authorization can succeed.","Avoid sending notifications before permission is granted; kitty drains them."],"tags":["kitty","macos","notifications","authorization","permission"],"backgroundTag":"notification-permission-denied","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}