{"record":{"id":"a09e8c5311de8125","repo":"kovidgoyal/kitty","slug":"clipboard-alias-request-has-no-mime-type-aborting","errorCode":null,"errorMessage":"Clipboard alias request has no MIME type, aborting the write request","messagePattern":"Clipboard alias request has no MIME type, aborting the write request","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"kitty/clipboard.py","lineNumber":440,"sourceCode":"                password=m.get('pw', ''),\n            )\n            self.handle_read_request(rr)\n        elif typ == 'write':\n            self.in_flight_write_request = WriteRequest(\n                is_primary_selection=m.get('loc', '') == 'primary',\n                protocol_type=ProtocolType.osc_5522,\n                id=sanitize_id(m.get('id', '')),\n                human_name=m.get('name', ''),\n                password=m.get('pw', ''),\n            )\n            self.handle_write_request(self.in_flight_write_request)\n        elif typ == 'walias':\n            wr = self.in_flight_write_request\n            if wr is None:\n                return\n            mime = m.get('mime', '')\n            if not mime:\n                log_error('Clipboard alias request has no MIME type, aborting the write request')\n                self.abort_write_request(wr, 'EINVAL')\n                return\n            try:\n                aliases = strict_base64_decode(epayload).decode('utf-8').split()\n            except Exception as e:\n                log_error(f'Clipboard alias request payload is not valid base64 encoded UTF-8, aborting the write request. Error: {e}')\n                self.abort_write_request(wr, 'EINVAL')\n                return\n            for alias in aliases:\n                wr.aliases[alias] = mime\n        elif typ == 'wdata':\n            wr = self.in_flight_write_request\n            if wr is None:\n                return\n            mime = m.get('mime', '')\n            try:\n                if not mime:\n                    self.commit_write_request(wr)","sourceCodeStart":422,"sourceCodeEnd":458,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kitty/clipboard.py#L422-L458","documentation":"An OSC 5522 walias (alias) message omitted the required `mime` metadata key; kitty aborts the associated in-flight write request with EINVAL.","triggerScenarios":"Sending type=walias without mime=... metadata while a write request is in flight.","commonSituations":"Client bugs; incomplete implementations of the kitty clipboard alias extension.","solutions":["Always include mime=<value> metadata in walias messages","Only send walias between wbegin and wend of a live write request"],"exampleFix":"# before\n\\x1b]5522;type=walias\\x1b]5522;<aliases-b64>\\x1b\\\\\n# after\n\\x1b]5522;type=walias:mime=text/plain\\x1b]5522;<aliases-b64>\\x1b\\\\","handlingStrategy":"validation","validationCode":"def valid_walias(meta: dict) -> bool:\n    return bool(meta.get('mime'))","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Always include mime= in walias messages","Send walias only within an active write request"],"tags":["kitty","clipboard","osc5522","protocol","validation"],"backgroundTag":"protocol-message-malformed","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}