{"record":{"id":"35207c52e9de80f8","repo":"zeroclaw-labs/zeroclaw","slug":"set-default-requires-at-least-one-of-model-provid","errorCode":null,"errorMessage":"set_default requires at least one of: model_provider, model, temperature","messagePattern":"set_default requires at least one of: model_provider, model, temperature","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-tools/src/model_routing_config.rs","lineNumber":538,"sourceCode":"                    }\n                }\n            }))?\n            .into(),\n            error: None,\n        })\n    }\n\n    async fn handle_set_default(&self, args: &Value) -> anyhow::Result<ToolResult> {\n        let provider_update = Self::parse_optional_string_update(args, \"model_provider\")?;\n        let model_update = Self::parse_optional_string_update(args, \"model\")?;\n        let temperature_update = Self::parse_optional_f64_update(args, \"temperature\")?;\n\n        let any_update = !matches!(provider_update, MaybeSet::Unset)\n            || !matches!(model_update, MaybeSet::Unset)\n            || !matches!(temperature_update, MaybeSet::Unset);\n\n        if !any_update {\n            anyhow::bail!(\n                \"set_default requires at least one of: model_provider, model, temperature\"\n            );\n        }\n\n        let mut cfg = self.load_config_without_env()?;\n\n        // Determine which models entry to update.\n        let (type_k, alias_k) = match &provider_update {\n            MaybeSet::Set(model_provider) => model_provider\n                .split_once('.')\n                .map(|(t, a)| (t.to_string(), a.to_string()))\n                .unwrap_or_else(|| (model_provider.clone(), \"default\".to_string())),\n            MaybeSet::Null | MaybeSet::Unset => {\n                // Update whichever entry already exists, or create a placeholder.\n                cfg.providers\n                    .models\n                    .iter_entries()\n                    .next()","sourceCodeStart":520,"sourceCodeEnd":556,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-tools/src/model_routing_config.rs#L520-L556","documentation":"Error \"set_default requires at least one of: model_provider, model, temperature\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-tools/src/model_routing_config.rs:538 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass at least one of model_provider, model, or temperature to set_default."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}