aaif-goose/goose · error · anyhow::Error

✗ Found {} error(s) in {total} extensions:

Error message

✗ Found {} error(s) in {total} extensions:

What it means

Error "✗ Found {} error(s) in {total} extensions: " thrown in aaif-goose/goose.

Source

Thrown at crates/goose/src/agents/validate_extensions.rs:74

                "[{index}] {} (id={}): stdio extension is missing required \"cmd\" field",
                meta.name, meta.id
            ));
            continue;
        }

        if let Err(e) = serde_json::from_value::<ExtensionConfig>(entry.clone()) {
            errors.push(format!("[{index}] {} (id={}): {e}", meta.name, meta.id));
        }
    }

    if errors.is_empty() {
        Ok(format!("✓ All {total} extensions validated successfully."))
    } else {
        let mut output = format!("✗ Found {} error(s) in {total} extensions:\n", errors.len());
        for error in &errors {
            output.push_str(&format!("\n  {error}"));
        }
        anyhow::bail!("{output}");
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use std::io::Write;
    use tempfile::NamedTempFile;

    fn write_json(content: &str) -> NamedTempFile {
        let mut f = NamedTempFile::new().unwrap();
        f.write_all(content.as_bytes()).unwrap();
        f
    }

    #[test]
    fn test_valid_builtin() {
        let f = write_json(

View on GitHub (pinned to 3810898a74)

When it happens

Trigger: Thrown at crates/goose/src/agents/validate_extensions.rs:74 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of aaif-goose/goose@3810898a74 (2026-08-16). Data as JSON: /api/errors/e32501b4f0df1e2e. Report an issue: GitHub.