ComposioHQ/composio · error · ComposioAuthConfigNotFoundError
No auth configs found for toolkit ${toolkitSlug}
Error message
No auth configs found for toolkit ${toolkitSlug} What it means
Thrown by Toolkits.authorize when the toolkit has no auth configs visible to the caller at all — the earlier branch that looks for an existing/default config found nothing, and no explicit authConfigId was supplied.
Source
Thrown at ts/packages/core/src/models/Toolkits.ts:390
} catch (error) {
if (error instanceof ComposioClient.APIError && error.status === 400) {
throw new ComposioAuthConfigNotFoundError(
`No Default auth config found for toolkit ${toolkitSlug}`,
{
meta: {
toolkitSlug,
},
cause: error,
possibleFixes: [
`Please Create an auth config for the toolkit ${toolkitSlug} via the dashboard`,
],
}
);
}
throw error;
}
} else {
throw new ComposioAuthConfigNotFoundError(
`No auth configs found for toolkit ${toolkitSlug}`,
{
meta: {
toolkitSlug,
},
}
);
}
}
// create the auth config
const composioConnectedAccount = new ConnectedAccounts(this.client);
return await composioConnectedAccount.initiate(
userId,
authConfigIdToUse,
{
// in this magic function we allow multiple connected accounts per user for an auth config
allowMultiple: true,
},View on GitHub (pinned to 64b1b85502)
Solutions
- Create an auth config for the toolkit first (dashboard or composio.toolkits.createAuthConfig), then authorize.
- Pass connectedAccountInitiationParams / fieldValues inline so authorize can initiate a connection without a pre-existing config.
- Confirm the API key/workspace matches where auth configs are stored; upgrade @composio/core if metadata is stale.
Example fix
// before
const acct = await composio.connect('github');
// after
await composio.toolkits.createAuthConfig('github', { /* fields */ });
const acct = await composio.connect('github', null, null, { gitHubAccessToken: process.env.GH_TOKEN! }); Defensive patterns
Strategy: fallback
Validate before calling
const configs = await composio.toolkits.listAuthConfigs(slug);
if (!configs.items.length) { await composio.toolkits.createAuthConfig(slug, fields); } Type guard
const hasAnyAuthConfig = (items: AuthConfig[]): boolean => items.length > 0;
Try / catch
try {
await composio.connect(slug);
} catch (e) {
if (e instanceof ComposioAuthConfigNotFoundError) { /* create auth config, then retry */ }
} Prevention
- Provision auth configs during workspace bootstrap before authorizing toolkits.
- Pass inline credentials to connect() when no stored config exists.
When it happens
Trigger: Calling authorize (or composio.connect) for a toolkit with zero auth configs in the workspace and providing no authConfigId or creation fields.
Common situations: Authorizing a toolkit for the first time in a fresh workspace/project without creating an auth config; using an API key scoped to an org where the toolkit's auth configs live elsewhere; backend metadata not yet provisioned.
Related errors
- No Default auth config found for toolkit ${toolkitSlug}
- No auth config found for toolkit
- Auth schema ${authScheme} not found for toolkit ${toolkitSlu
- Couldn't fetch Toolkit with slug: ${slug}
- Could not determine a home directory to store the Composio c
AI-assisted analysis of ComposioHQ/composio@64b1b85502 (2026-08-28).
Data as JSON: /api/errors/ad4112d796bc3f9b.
Report an issue: GitHub.