{"record":{"id":"9f32cac95b9203f2","repo":"zed-industries/zed","slug":"unknown-settings-category-9f32ca","errorCode":null,"errorMessage":"Unknown settings category: {}","messagePattern":"Unknown settings category: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/extension_host/src/wasm_host/wit/since_v0_8_0.rs","lineNumber":1034,"sourceCode":"                            });\n\n                        match settings {\n                            project::project_settings::ContextServerSettings::Stdio {\n                                enabled: _,\n                                command,\n                                ..\n                            } => Ok(serde_json::to_string(&settings::ContextServerSettings {\n                                command: Some(settings::CommandSettings {\n                                    path: command.path.to_str().map(|path| path.to_string()),\n                                    arguments: Some(command.args),\n                                    env: command.env.map(|env| env.into_iter().collect()),\n                                }),\n                                settings: None,\n                            })?),\n                            project::project_settings::ContextServerSettings::Extension {\n                                enabled: _,\n                                settings,\n                                ..\n                            } => Ok(serde_json::to_string(&settings::ContextServerSettings {\n                                command: None,\n                                settings: Some(settings),\n                            })?),\n                            project::project_settings::ContextServerSettings::Http { .. } => {\n                                bail!(\"remote context server settings not supported in 0.6.0\")\n                            }\n                        }\n                    }\n                    _ => {\n                        bail!(\"Unknown settings category: {}\", category);\n                    }\n                })\n            }\n            .boxed_local()\n        })\n        .await\n        .to_wasmtime_result()","sourceCodeStart":1016,"sourceCodeEnd":1052,"githubUrl":"https://github.com/zed-industries/zed/blob/5a9b9558db01a6b906cec2fb70a797affdc58cdd/crates/extension_host/src/wasm_host/wit/since_v0_8_0.rs#L1016-L1052","documentation":"The v0.8.0 get_settings host binding recognizes exactly three category strings — \"language\", \"lsp\", and \"context_servers\" — and bails on anything else via the wildcard arm. The category match is exact and case-sensitive; an unrecognized string is rejected before any settings lookup happens.","triggerScenarios":"get_settings(location, category, key) with a category other than \"language\", \"lsp\", or \"context_servers\" — e.g. \"project\", \"theme\", \"buffer\", or a typo like \"Language\".","commonSituations":"Extension authors guessing at a settings namespace that the WIT surface never exposed, case mismatches, or code written for a future/newer API version run against these bindings.","solutions":["Use one of \"language\", \"lsp\", \"context_servers\" exactly as spelled","Check for leading/trailing whitespace and case in the category literal","If a genuinely new category is needed, bump extension_api_version to bindings that expose it"],"exampleFix":"// before\nlet s = get_settings(None, \"project\".into(), None)?; // Unknown settings category: project\n\n// after\nlet s = get_settings(None, \"lsp\".into(), Some(\"rust-analyzer\".into()))?;","handlingStrategy":"validation","validationCode":"const SUPPORTED_CATEGORIES: &[&str] = &[\"language\", \"lsp\", \"context_servers\"];\nif !SUPPORTED_CATEGORIES.contains(&category.as_str()) {\n    return Err(format!(\"unsupported settings category '{category}'\"));\n}","typeGuard":"fn is_supported_category_v0_8_0(category: &str) -> bool {\n    matches!(category, \"language\" | \"lsp\" | \"context_servers\")\n}","tryCatchPattern":"match get_settings(location, category, key) {\n    Ok(json) => { /* ... */ }\n    Err(e) if e.starts_with(\"Unknown settings category\") => { /* use defaults */ }\n    Err(e) => return Err(e),\n}","preventionTips":["Use constants for category strings; the match is exact and case-sensitive","Align extension_api_version with the categories your code queries"],"tags":["settings","wasm","extension","zed","invalid-argument"],"backgroundTag":"invalid-argument-value","analyzedSha":"5a9b9558db01a6b906cec2fb70a797affdc58cdd","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}