{"record":{"id":"76a7a97842aa8714","repo":"aaif-goose/goose","slug":"responses-tool-calls-contain-duplicate-id-after-un","errorCode":null,"errorMessage":"Responses tool calls contain duplicate ID after Unicode tag sanitization","messagePattern":"Responses tool calls contain duplicate ID after Unicode tag sanitization","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/goose-provider-types/src/formats/openai_responses.rs","lineNumber":795,"sourceCode":"        value => Ok(value),\n    }\n}\n\nfn parse_tool_arguments(arguments: &str) -> anyhow::Result<Value> {\n    if arguments.is_empty() {\n        Ok(json!({}))\n    } else {\n        match serde_json::from_str(arguments) {\n            Ok(value) => sanitize_tool_arguments(value),\n            Err(_) => Ok(json!({})),\n        }\n    }\n}\n\nfn sanitize_tool_request_id(id: &str, seen_ids: &mut HashSet<String>) -> anyhow::Result<String> {\n    let id = strip_unicode_tags(id);\n    if !seen_ids.insert(id.clone()) {\n        return Err(anyhow!(\n            \"Responses tool calls contain duplicate ID after Unicode tag sanitization\"\n        ));\n    }\n    Ok(id)\n}\n\npub fn responses_api_to_message(response: &ResponsesApiResponse) -> anyhow::Result<Message> {\n    let mut content = Vec::new();\n    let mut tool_request_ids = HashSet::new();\n\n    for item in &response.output {\n        match item {\n            ResponseOutputItem::Reasoning { summary, .. } => {\n                content.extend(reasoning_from_summary(summary));\n            }\n            ResponseOutputItem::Message {\n                content: msg_content,\n                ..","sourceCodeStart":777,"sourceCodeEnd":813,"githubUrl":"https://github.com/aaif-goose/goose/blob/3810898a7447ec3299be72e223d3570a7aabf0ab/crates/goose-provider-types/src/formats/openai_responses.rs#L777-L813","documentation":"Error \"Responses tool calls contain duplicate ID after Unicode tag sanitization\" thrown in aaif-goose/goose.","triggerScenarios":"Thrown at crates/goose-provider-types/src/formats/openai_responses.rs:795 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"}