{"record":{"id":"ad4112d796bc3f9b","repo":"ComposioHQ/composio","slug":"no-auth-configs-found-for-toolkit-toolkitslug","errorCode":null,"errorMessage":"No auth configs found for toolkit ${toolkitSlug}","messagePattern":"No auth configs found for toolkit (.+?)","errorType":"exception","errorClass":"ComposioAuthConfigNotFoundError","httpStatus":null,"severity":"error","filePath":"ts/packages/core/src/models/Toolkits.ts","lineNumber":390,"sourceCode":"        } catch (error) {\n          if (error instanceof ComposioClient.APIError && error.status === 400) {\n            throw new ComposioAuthConfigNotFoundError(\n              `No Default auth config found for toolkit ${toolkitSlug}`,\n              {\n                meta: {\n                  toolkitSlug,\n                },\n                cause: error,\n                possibleFixes: [\n                  `Please Create an auth config for the toolkit ${toolkitSlug} via the dashboard`,\n                ],\n              }\n            );\n          }\n          throw error;\n        }\n      } else {\n        throw new ComposioAuthConfigNotFoundError(\n          `No auth configs found for toolkit ${toolkitSlug}`,\n          {\n            meta: {\n              toolkitSlug,\n            },\n          }\n        );\n      }\n    }\n    // create the auth config\n    const composioConnectedAccount = new ConnectedAccounts(this.client);\n    return await composioConnectedAccount.initiate(\n      userId,\n      authConfigIdToUse,\n      {\n        // in this magic function we allow multiple connected accounts per user for an auth config\n        allowMultiple: true,\n      },","sourceCodeStart":372,"sourceCodeEnd":408,"githubUrl":"https://github.com/ComposioHQ/composio/blob/64b1b85502b1beeb2379e6c9e8bf1104504fa637/ts/packages/core/src/models/Toolkits.ts#L372-L408","documentation":"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.","triggerScenarios":"Calling authorize (or composio.connect) for a toolkit with zero auth configs in the workspace and providing no authConfigId or creation fields.","commonSituations":"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.","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."],"exampleFix":"// before\nconst acct = await composio.connect('github');\n\n// after\nawait composio.toolkits.createAuthConfig('github', { /* fields */ });\nconst acct = await composio.connect('github', null, null, { gitHubAccessToken: process.env.GH_TOKEN! });","handlingStrategy":"fallback","validationCode":"const configs = await composio.toolkits.listAuthConfigs(slug);\nif (!configs.items.length) { await composio.toolkits.createAuthConfig(slug, fields); }","typeGuard":"const hasAnyAuthConfig = (items: AuthConfig[]): boolean => items.length > 0;","tryCatchPattern":"try {\n  await composio.connect(slug);\n} catch (e) {\n  if (e instanceof ComposioAuthConfigNotFoundError) { /* create auth config, then retry */ }\n}","preventionTips":["Provision auth configs during workspace bootstrap before authorizing toolkits.","Pass inline credentials to connect() when no stored config exists."],"tags":["auth-config","authorize","toolkit","typescript"],"backgroundTag":"missing-auth-configuration","analyzedSha":"64b1b85502b1beeb2379e6c9e8bf1104504fa637","analyzedAt":"2026-08-28T15:39:33.623Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}