{"record":{"id":"dc3edee9ac91fe6c","repo":"tinyhumansai/openhuman","slug":"mcp-registry-install-invalid-env-e","errorCode":null,"errorMessage":"mcp_registry_install: invalid env: {e}","messagePattern":"mcp_registry_install: invalid env: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/mcp/registry/tools.rs","lineNumber":411,"sourceCode":"            \"properties\": {\n                \"qualified_name\": { \"type\": \"string\" },\n                \"env\": { \"type\": \"object\", \"additionalProperties\": { \"type\": \"string\" } },\n                \"config\": { \"type\": \"object\" }\n            },\n            \"required\": [\"qualified_name\"]\n        })\n    }\n    fn permission_level(&self) -> PermissionLevel {\n        PermissionLevel::Write\n    }\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let qn = req_str(&args, \"qualified_name\")?;\n        let env: HashMap<String, String> = args\n            .get(\"env\")\n            .cloned()\n            .map(serde_json::from_value)\n            .transpose()\n            .map_err(|e| anyhow::anyhow!(\"mcp_registry_install: invalid env: {e}\"))?\n            .unwrap_or_default();\n        let config_value = args.get(\"config\").cloned();\n        emit!(\n            ops::mcp_clients_install(&self.config, qn, env, config_value).await,\n            \"mcp_registry_install\"\n        )\n    }\n}\n\n/// Uninstall an MCP server. Default-OFF.\npub struct McpRegistryUninstallTool {\n    config: Arc<Config>,\n}\nimpl McpRegistryUninstallTool {\n    pub fn new(config: Arc<Config>) -> Self {\n        Self { config }\n    }\n}","sourceCodeStart":393,"sourceCodeEnd":429,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/mcp/registry/tools.rs#L393-L429","documentation":"The \"env\" argument of mcp_registry_install failed to deserialize into HashMap<String,String> — some value is not a string (or the object is malformed). The tool schema declares env as an object with additionalProperties string.","triggerScenarios":"Thrown at src/openhuman/mcp/registry/tools.rs:411 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make every env value a string (quote numbers and booleans)","Fix malformed JSON in the env object","Omit env entirely if no environment variables are needed"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}