tinyhumansai/openhuman · error · anyhow::Error
missing required string argument `provider`
Error message
missing required string argument `provider`
What it means
The credentials `oauth_connect` tool was called without a usable `provider` string — the arg is missing, not a string, or trims to empty. Provider is the only required argument, and without it the OAuth connect-url lookup has nothing to resolve, so the guard fires before any flow starts.
Source
Thrown at src/openhuman/security/credentials/tools.rs:167
}
fn parameters_schema(&self) -> serde_json::Value {
json!({
"type": "object",
"properties": {
"provider": { "type": "string" },
"skill_id": { "type": "string" }
},
"required": ["provider"]
})
}
async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {
log::debug!("[tool][credentials] oauth_connect invoked");
let provider = args
.get("provider")
.and_then(Value::as_str)
.map(str::trim)
.filter(|s| !s.is_empty())
.ok_or_else(|| anyhow::anyhow!("missing required string argument `provider`"))?;
let skill_id = args.get("skill_id").and_then(Value::as_str);
emit!(
credentials::oauth_connect(&self.config, provider, skill_id, None, None).await,
"oauth_connect_url"
)
}
}
/// List available OAuth integrations.
pub struct OAuthListTool {
config: Arc<Config>,
}
impl OAuthListTool {
pub fn new(config: Arc<Config>) -> Self {
Self { config }
}
}
#[async_trait]View on GitHub (pinned to 7491200858)
Solutions
- Pass `provider` as a non-empty string naming an OAuth provider
- Check the provider spelling against the supported provider list
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at src/openhuman/security/credentials/tools.rs:167 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/b8853257fa1273f8.
Report an issue: GitHub.