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/openai.rs:666
msg.get("role") == Some(&json!("user"))
&& msg
.get("content")
.and_then(|c| c.as_array())
.is_some_and(|arr| {
!arr.is_empty()
&& arr
.iter()
.all(|item| item.get("type") == Some(&json!("image_url")))
})
}
pub fn format_tools(tools: &[Tool]) -> 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));
}
result.push(json!({
"type": "function",
"function": {
"name": tool.name,
"description": tool.description,
"parameters": tool.input_schema,
}
}));
}
Ok(result)
}
/// Convert OpenAI's API response to internal Message format
pub fn response_to_message(response: &Value) -> anyhow::Result<Message> {
let output_token_limit_reached = responseView on GitHub (pinned to 3810898a74)
When it happens
Trigger: Thrown at crates/goose-provider-types/src/formats/openai.rs:666 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/8552e561896c73bb.
Report an issue: GitHub.