{"record":{"id":"39a2da92a2a001dc","repo":"zed-industries/zed","slug":"error-39a2da","errorCode":null,"errorMessage":"{error}","messagePattern":"\\{error\\}","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/project/src/toolchain_store.rs","lineNumber":774,"sourceCode":"                    language_name: language_name.clone().into(),\n                    abs_path: abs_path.to_string_lossy().into_owned(),\n                })\n                .await?;\n\n            let response = response\n                .response\n                .context(\"Failed to resolve toolchain via RPC\")?;\n            use proto::resolve_toolchain_response::Response;\n            match response {\n                Response::Toolchain(toolchain) => Ok(Toolchain {\n                    language_name: language_name.clone(),\n                    name: toolchain.name.into(),\n                    path: toolchain.path.into(),\n                    as_json: serde_json::Value::from_str(&toolchain.raw_json)\n                        .context(\"Deserializing ResolveToolchain LSP response\")?,\n                }),\n                Response::Error(error) => {\n                    anyhow::bail!(\"{error}\");\n                }\n            }\n        })\n    }\n}\n","sourceCodeStart":756,"sourceCodeEnd":780,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/project/src/toolchain_store.rs#L756-L780","documentation":"ToolchainStore resolves toolchains (prebuilt language servers/runtimes) via the ResolveToolchain RPC to the Zed server. A successful RPC returns either Response::Toolchain or Response::Error; in the Error case the server's message is re-thrown verbatim as {error} (crates/project/src/toolchain_store.rs:774). This is a passthrough - the real cause is whatever the server put in the error payload.","triggerScenarios":"Requesting a toolchain for a language whose server-side resolution fails: unknown language, no toolchain published for the client platform, or a server-side download/configuration error.","commonSituations":"Remote/dev-server environments; newly supported or experimental languages whose toolchain is not published yet; platforms without a prebuilt toolchain.","solutions":["Read the message body - it is the server's own error text and names the concrete cause","Check the language's toolchain/language-server settings in settings.json and prefer an explicit local installation","Update Zed and reconnect - newer servers publish more toolchains","If a local toolchain exists, point the language server config at its path instead of relying on RPC resolution"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"match toolchain_store.resolve_toolchain(language_name, cx).await {\n    Ok(toolchain) => toolchain,\n    Err(e) => {\n        log::error!(\"toolchain resolution failed for {language_name}: {e:#}\");\n        // fall back to a system-installed language server if one is configured\n        system_toolchain_or_none(language_name)\n    }\n}","preventionTips":["Pin toolchains that are actually published for your platform","Cache resolved toolchains instead of resolving on every request","Log the passthrough message verbatim - the server text is the diagnosis"],"tags":["toolchain","rpc","language-server","remote","resolution"],"backgroundTag":"rpc-server-error","analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}