{"record":{"id":"4c7c4fffe27a5aac","repo":"tinyhumansai/openhuman","slug":"missing-required-parameter-place-id","errorCode":null,"errorMessage":"Missing required parameter: place_id","messagePattern":"Missing required parameter: place_id","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/integrations/tools/google_places.rs","lineNumber":238,"sourceCode":"\n    fn parameters_schema(&self) -> serde_json::Value {\n        json!({\n            \"type\": \"object\",\n            \"properties\": {\n                \"place_id\": {\n                    \"type\": \"string\",\n                    \"description\": \"Google Places ID (from google_places_search results)\"\n                }\n            },\n            \"required\": [\"place_id\"]\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        let place_id = args\n            .get(\"place_id\")\n            .and_then(|v| v.as_str())\n            .ok_or_else(|| anyhow::anyhow!(\"Missing required parameter: place_id\"))?;\n\n        if place_id.trim().is_empty() {\n            return Ok(ToolResult::error(\"place_id cannot be empty\"));\n        }\n\n        let body = json!({ \"placeId\": place_id });\n\n        tracing::debug!(\"[google_places_details] placeId={}\", place_id);\n\n        match self\n            .client\n            .post::<DetailsResponse>(\"/agent-integrations/google-places/details\", &body)\n            .await\n        {\n            Ok(resp) => {\n                let p = &resp.place;\n                let mut lines = vec![\n                    format!(\"{}\", p.name),","sourceCodeStart":220,"sourceCodeEnd":256,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/integrations/tools/google_places.rs#L220-L256","documentation":"Required-parameter guard in the Google Places details tool's execute: `place_id` is missing or not a string. The schema requires place_id, which must come from a prior google_places_search result; this fires when the caller skips the search step or passes a wrong-typed argument.","triggerScenarios":"Thrown at src/openhuman/integrations/tools/google_places.rs:238 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass the place_id taken from google_places_search results","Re-run the search to obtain a fresh place_id if it was lost"],"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-14T00:17:10.932Z"}