{"record":{"id":"e32501b4f0df1e2e","repo":"aaif-goose/goose","slug":"found-error-s-in-total-extensions","errorCode":null,"errorMessage":"✗ Found {} error(s) in {total} extensions:\n","messagePattern":"✗ Found (.+?) error\\(s\\) in (.+?) extensions:\n","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/goose/src/agents/validate_extensions.rs","lineNumber":74,"sourceCode":"                \"[{index}] {} (id={}): stdio extension is missing required \\\"cmd\\\" field\",\n                meta.name, meta.id\n            ));\n            continue;\n        }\n\n        if let Err(e) = serde_json::from_value::<ExtensionConfig>(entry.clone()) {\n            errors.push(format!(\"[{index}] {} (id={}): {e}\", meta.name, meta.id));\n        }\n    }\n\n    if errors.is_empty() {\n        Ok(format!(\"✓ All {total} extensions validated successfully.\"))\n    } else {\n        let mut output = format!(\"✗ Found {} error(s) in {total} extensions:\\n\", errors.len());\n        for error in &errors {\n            output.push_str(&format!(\"\\n  {error}\"));\n        }\n        anyhow::bail!(\"{output}\");\n    }\n}\n\n#[cfg(test)]\nmod tests {\n    use super::*;\n    use std::io::Write;\n    use tempfile::NamedTempFile;\n\n    fn write_json(content: &str) -> NamedTempFile {\n        let mut f = NamedTempFile::new().unwrap();\n        f.write_all(content.as_bytes()).unwrap();\n        f\n    }\n\n    #[test]\n    fn test_valid_builtin() {\n        let f = write_json(","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/aaif-goose/goose/blob/3810898a7447ec3299be72e223d3570a7aabf0ab/crates/goose/src/agents/validate_extensions.rs#L56-L92","documentation":"Error \"✗ Found {} error(s) in {total} extensions:\n\" thrown in aaif-goose/goose.","triggerScenarios":"Thrown at crates/goose/src/agents/validate_extensions.rs:74 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"3810898a7447ec3299be72e223d3570a7aabf0ab","analyzedAt":"2026-08-16T10:14:26.282Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}