{"record":{"id":"abe63b1ce9349e1b","repo":"zed-industries/zed","slug":"chat-has-been-removed-in-the-latest-version-of-zed","errorCode":null,"errorMessage":"chat has been removed in the latest version of Zed","messagePattern":"chat has been removed in the latest version of Zed","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/collab/src/rpc.rs","lineNumber":3689,"sourceCode":"                },\n            ) {\n                tracing::error!(\n                    \"failed to send notification to {:?} {}\",\n                    connection_id,\n                    error\n                );\n            }\n        }\n    }\n}\n\n/// Send a message to the channel\nasync fn send_channel_message(\n    _request: proto::SendChannelMessage,\n    _response: Response<proto::SendChannelMessage>,\n    _session: MessageContext,\n) -> Result<()> {\n    Err(anyhow!(\"chat has been removed in the latest version of Zed\").into())\n}\n\n/// Delete a channel message\nasync fn remove_channel_message(\n    _request: proto::RemoveChannelMessage,\n    _response: Response<proto::RemoveChannelMessage>,\n    _session: MessageContext,\n) -> Result<()> {\n    Err(anyhow!(\"chat has been removed in the latest version of Zed\").into())\n}\n\nasync fn update_channel_message(\n    _request: proto::UpdateChannelMessage,\n    _response: Response<proto::UpdateChannelMessage>,\n    _session: MessageContext,\n) -> Result<()> {\n    Err(anyhow!(\"chat has been removed in the latest version of Zed\").into())\n}","sourceCodeStart":3671,"sourceCodeEnd":3707,"githubUrl":"https://github.com/zed-industries/zed/blob/bc538def4545534201bbfcac4e95ac34ea6501b6/crates/collab/src/rpc.rs#L3671-L3707","documentation":"Returned unconditionally by the send_channel_message handler (and its sibling remove_channel_message stub) because chat was removed from Zed; the handlers keep the RPC endpoint alive but do nothing except error. Any client still invoking SendChannelMessage/RemoveChannelMessage gets this message regardless of arguments.","triggerScenarios":"An outdated Zed client sends SendChannelMessage after the server-side chat removal; scripts or bots built against the old chat RPC; tests not updated after the feature was dropped.","commonSituations":"Version skew between an old client and a current collab server; third-party tooling still targeting the chat protocol; migration leftovers in a codebase that used channel chat.","solutions":["Update the client to a Zed version that no longer uses channel chat","Remove or disable chat-send code paths; migrate to whatever replaced chat in your client version (or drop the feature)","Gate chat UI on the feature set exchanged at connection time so old paths are never invoked against new servers"],"exampleFix":"# before (old client)\nclient.send(SendChannelMessage { channel_id, body }).await?;\n\n# after (feature-gate the legacy path)\nif connection_features.contains(\"chat\") {\n    client.send(SendChannelMessage { channel_id, body }).await?;\n} else {\n    self.ui.show_toast(\"Chat has been removed in this version of Zed\");\n}","handlingStrategy":"validation","validationCode":"// Feature-gate legacy chat calls.\nif connection_features.contains(\"chat\") {\n    client.send(SendChannelMessage { channel_id, body }).await?;\n} else {\n    self.ui.show_toast(\"Chat has been removed in this version of Zed\");\n}","typeGuard":"fn chat_supported(features: &HashSet<&str>) -> bool {\n    features.contains(\"chat\")\n}","tryCatchPattern":"if let Err(err) = client.send(SendChannelMessage::default()).await {\n    if err.to_string().contains(\"chat has been removed\") {\n        self.disable_chat_ui(); // permanent condition; stop calling\n        return Ok(());\n    }\n    return Err(err);\n}","preventionTips":["Negotiate features at connection time and disable absent ones in the UI","Update clients and servers together; remove dead chat code paths","Treat this error as permanent — never auto-retry it"],"tags":["deprecated","chat","channels","compatibility","rpc","server"],"backgroundTag":null,"analyzedSha":"bc538def4545534201bbfcac4e95ac34ea6501b6","analyzedAt":"2026-08-16T07:30:46.435Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}