{"record":{"id":"048a91555a3a68b5","repo":"kovidgoyal/kitty","slug":"this-should-be-run-as-kitten-notify","errorCode":null,"errorMessage":"This should be run as `kitten notify ...`","messagePattern":"This should be run as `kitten notify \\.\\.\\.`","errorType":"console","errorClass":"SystemExit","httpStatus":null,"severity":"warning","filePath":"kittens/notify/main.py","lineNumber":116,"sourceCode":"\"\"\"\n\n\nhelp_text = \"\"\"\\\nSend notifications to the user that are displayed to them via the\ndesktop environment's notifications service. Works over SSH as well.\n\nTo update an existing notification, specify the identifier of the notification\nwith the --identifier option. The value should be the same as the identifier specified for\nthe notification you wish to update.\n\nIf no title is specified and an identifier is specified using the --identifier\noption, then instead of creating a new notification, an existing notification\nwith the specified identifier is closed.\n\"\"\"\n\nusage = 'TITLE [BODY ...]'\nif __name__ == '__main__':\n    raise SystemExit('This should be run as `kitten notify ...`')\nelif __name__ == '__doc__':\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'] = 'Send notifications to the user'\n","sourceCodeStart":98,"sourceCodeEnd":123,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kittens/notify/main.py#L98-L123","documentation":"send() on the peer socket returned -1 with an errno other than EINTR (typically EPIPE — peer closed — or ECONNRESET), so the pending reply is dropped and the write marked failed. Same consequence as the zero-send case: the peer gets no answer.","triggerScenarios":"Writing a response to a remote-control/sharing peer that disconnected before the reply was flushed; kernel signaling EPIPE because the peer did shutdown(SHUT_RD) after a read error.","commonSituations":"Chained failures: peer sent a malformed message, kitty shut down its read side, peer disconnects, then this write error logs; or `kitty @` command canceled mid-response.","solutions":["Keep the client connection open until the full response is read","Handle client-side errors gracefully so disconnects don't cascade into these logs","No action if clients are expected to abandon connections early"],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep the client connection open until the response arrives","Handle client-side errors so disconnects don't cascade","Expect EPIPE logs when clients abandon commands early"],"tags":["remote-control","epipe","sockets","kitty"],"backgroundTag":"broken-pipe-on-write","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}