aaif-goose/goose · error

Responses tool arguments contain duplicate key after Unicode

Error message

Responses tool arguments contain duplicate key after Unicode tag sanitization

What it means

Error "Responses tool arguments contain duplicate key after Unicode tag sanitization" thrown in aaif-goose/goose.

Source

Thrown at crates/goose-provider-types/src/formats/openai_responses.rs:769

    Ok(payload)
}

fn sanitize_tool_arguments(value: Value) -> anyhow::Result<Value> {
    match value {
        Value::String(text) => Ok(Value::String(strip_unicode_tags(&text))),
        Value::Array(values) => Ok(Value::Array(
            values
                .into_iter()
                .map(sanitize_tool_arguments)
                .collect::<anyhow::Result<_>>()?,
        )),
        Value::Object(values) => {
            let mut sanitized = serde_json::Map::new();
            for (key, value) in values {
                let key = strip_unicode_tags(&key);
                if sanitized.contains_key(&key) {
                    return Err(anyhow!(
                        "Responses tool arguments contain duplicate key after Unicode tag sanitization"
                    ));
                }
                sanitized.insert(key, sanitize_tool_arguments(value)?);
            }
            Ok(Value::Object(sanitized))
        }
        value => Ok(value),
    }
}

fn parse_tool_arguments(arguments: &str) -> anyhow::Result<Value> {
    if arguments.is_empty() {
        Ok(json!({}))
    } else {
        match serde_json::from_str(arguments) {
            Ok(value) => sanitize_tool_arguments(value),
            Err(_) => Ok(json!({})),

View on GitHub (pinned to 3810898a74)

When it happens

Trigger: Thrown at crates/goose-provider-types/src/formats/openai_responses.rs:769 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/33bea77a19f48494. Report an issue: GitHub.