kovidgoyal/kitty · warning · SystemExit
This should be run as `kitten notify ...`
Error message
This should be run as `kitten notify ...`
What it means
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.
Source
Thrown at kittens/notify/main.py:116
"""
help_text = """\
Send notifications to the user that are displayed to them via the
desktop environment's notifications service. Works over SSH as well.
To update an existing notification, specify the identifier of the notification
with the --identifier option. The value should be the same as the identifier specified for
the notification you wish to update.
If no title is specified and an identifier is specified using the --identifier
option, then instead of creating a new notification, an existing notification
with the specified identifier is closed.
"""
usage = 'TITLE [BODY ...]'
if __name__ == '__main__':
raise SystemExit('This should be run as `kitten notify ...`')
elif __name__ == '__doc__':
cd = sys.cli_docs # type: ignore
cd['usage'] = usage
cd['options'] = OPTIONS
cd['help_text'] = help_text
cd['short_desc'] = 'Send notifications to the user'
View on GitHub (pinned to 6d5d0c4406)
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
Defensive patterns
Strategy: fallback
Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- This should be run as kitten icat
- Remote control not enabled, this kitten should be run via a
- The remote control password was invalid: {data!r}
- Remote control is not enabled, remember to use allow_remote_
- The OS Window {os_window_id} is a panel and cannot be resize
AI-assisted analysis of kovidgoyal/kitty@6d5d0c4406 (2026-08-27).
Data as JSON: /api/errors/048a91555a3a68b5.
Report an issue: GitHub.