tinyhumansai/openhuman · error · anyhow::Error
No auth config found for toolkit '{app_name}'. Create one in
Error message
No auth config found for toolkit '{app_name}'. Create one in Composio first. What it means
The v3 auth-config lookup succeeded (HTTP 200) but returned zero items for the toolkit: this workspace has no auth config for that app, so there is nothing to connect through. The code prefers an enabled config and falls back to the first item — but items is empty, so it bails with instructions to create one in Composio first.
Source
Thrown at src/openhuman/integrations/composio/tools/direct.rs:689
("toolkit_slug", app_name),
("show_disabled", "true"),
("limit", "25"),
])
.send()
.await?;
if !resp.status().is_success() {
let err = response_error(resp).await;
anyhow::bail!("Composio v3 auth config lookup failed: {err}");
}
let body: ComposioAuthConfigsResponse = resp
.json()
.await
.context("Failed to decode Composio v3 auth configs response")?;
if body.items.is_empty() {
anyhow::bail!(
"No auth config found for toolkit '{app_name}'. Create one in Composio first."
);
}
let preferred = body
.items
.iter()
.find(|cfg| cfg.is_enabled())
.or_else(|| body.items.first())
.context("No usable auth config returned by Composio")?;
Ok(preferred.id.clone())
}
}
#[async_trait]
impl Tool for ComposioTool {
fn name(&self) -> &str {View on GitHub (pinned to 7491200858)
Solutions
- Create an auth config for the toolkit in the Composio dashboard (workspace settings → Auth / API keys), then retry connect
- Verify the API key belongs to the same workspace where the auth config was created
- Double-check the toolkit slug against Composio's current registry — a renamed toolkit yields the same empty result
- Alternatively, look up the auth config id in the dashboard and pass auth_config_id directly, skipping the lookup
Example fix
// before — app-only connect triggers the lookup that finds nothing
tool.get_connection_url(Some("jira"), None, &entity_id).await?;
// after — pass the auth config id from the Composio dashboard explicitly
tool.get_connection_url(None, Some("ac_01j8z..."), &entity_id).await?; Defensive patterns
Strategy: try-catch
Try / catch
match tool.get_connection_url(Some(slug), None, &entity).await {
Ok(url) => ui.open(url),
Err(e) => {
let msg = format!("{e:#}");
if msg.contains("No auth config found") {
ui.explain("Create an auth config for '{slug}' in the Composio dashboard, then retry");
} else { ui.show_connect_error(&msg); }
}
} Prevention
- During setup, check the workspace has an auth config per toolkit before exposing its connect button
- Pass auth_config_id directly when you know it — it skips the empty-lookup failure mode
- Confirm the API key's workspace matches where auth configs are created
When it happens
Trigger: get_connection_url(Some("<toolkit>"), None, entity) where the Composio workspace backing the API key has no auth config for that toolkit (show_disabled=true means disabled ones would still be listed — empty means genuinely none exist).
Common situations: First-time setup of a new toolkit where the Composio workspace admin has not created the auth config; API key pointing at a different workspace/org than the one configured; toolkit renamed upstream so the slug matches nothing.
Related errors
- Composio connect failed on v3 ({v3_err}) and v2 fallback ({v
- Composio v3 auth config lookup failed: {err}
- Composio v3 connect failed: {err}
- Composio v2 connect failed: {err}
- Missing 'app' or 'auth_config_id' for connect
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/f44d3aa518647186.
Report an issue: GitHub.