aaif-goose/goose · error
Duplicate tool name: {}
Error message
Duplicate tool name: {} What it means
Error "Duplicate tool name: {}" thrown in aaif-goose/goose.
Source
Thrown at crates/goose-provider-types/src/formats/databricks.rs:314
if let Some(temp) = model_config.temperature {
obj.insert("temperature".to_string(), json!(temp));
}
}
obj.insert(
"max_completion_tokens".to_string(),
json!(model_config.max_output_tokens()),
);
}
}
}
pub fn format_tools(tools: &[Tool], _model_name: &str) -> anyhow::Result<Vec<Value>> {
let mut tool_names = std::collections::HashSet::new();
let mut result = Vec::new();
for tool in tools {
if !tool_names.insert(&tool.name) {
return Err(anyhow!("Duplicate tool name: {}", tool.name));
}
let has_properties = tool
.input_schema
.get("properties")
.and_then(|v| v.as_object())
.is_some_and(|p| !p.is_empty());
// Databricks serving endpoints (including Gemini-backed ones) use the
// OpenAI-compatible chat format, so tools always use "parameters" — not
// the Google-native "parametersJsonSchema" field.
let mut def = json!({
"name": tool.name,
"description": tool.description,
});
if has_properties {
def["parameters"] = json!(tool.input_schema);
}View on GitHub (pinned to 3810898a74)
When it happens
Trigger: Thrown at crates/goose-provider-types/src/formats/databricks.rs:314 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/1a0858681174857e.
Report an issue: GitHub.