{"record":{"id":"2758117cc2ebe700","repo":"ComposioHQ/composio","slug":"no-auth-config-found-for-toolkit","errorCode":null,"errorMessage":"No auth config found for toolkit","messagePattern":"No auth config found for toolkit","errorType":"exception","errorClass":"ComposioAuthConfigNotFoundError","httpStatus":null,"severity":"warning","filePath":"ts/packages/core/src/models/Toolkits.ts","lineNumber":202,"sourceCode":"  async get(\n    arg?: string | ToolkitListParams,\n    requestOptions?: ComposioRequestOptions\n  ): Promise<ToolkitRetrieveResponse | ToolKitListResponse> {\n    if (typeof arg === 'string') {\n      return this.getToolkitBySlug(arg, requestOptions);\n    }\n    return this.getToolkits(arg ?? {}, requestOptions);\n  }\n\n  private async getAuthConfigFields(\n    toolkitSlug: string,\n    authScheme: AuthSchemeType | null,\n    authConfigType: 'authConfigCreation' | 'connectedAccountInitiation',\n    requiredOnly: boolean\n  ): Promise<ToolkitAuthFieldsResponse> {\n    const toolkit = await this.getToolkitBySlug(toolkitSlug);\n    if (!toolkit.authConfigDetails) {\n      throw new ComposioAuthConfigNotFoundError('No auth config found for toolkit', {\n        meta: {\n          toolkitSlug,\n        },\n      });\n    }\n\n    // if multiple auth configs are found, warn the user and select the first one\n    if (toolkit.authConfigDetails.length > 1 && !authScheme) {\n      logger.warn(\n        `Multiple auth configs found for ${toolkitSlug}, please specify the auth scheme to get details of specific auth scheme. Selecting the first scheme by default.`,\n        {\n          meta: {\n            toolkitSlug,\n          },\n        }\n      );\n    }\n","sourceCodeStart":184,"sourceCodeEnd":220,"githubUrl":"https://github.com/ComposioHQ/composio/blob/64b1b85502b1beeb2379e6c9e8bf1104504fa637/ts/packages/core/src/models/Toolkits.ts#L184-L220","documentation":"Thrown when a toolkit exists but has no authConfigDetails, meaning it requires no authentication (or has no auth schemes registered) and the caller asked for auth config fields. Raised from getAuthConfigFields, which backs getAuthConfigCreationFields and getConnectedAccountInitiationFields.","triggerScenarios":"Calling getAuthConfigCreationFields(toolkitSlug) or getConnectedAccountInitiationFields(toolkitSlug) for a toolkit that has no auth schemes (e.g. NO_AUTH toolkits like math or web search).","commonSituations":"Building a generic auth-configuration UI that assumes every toolkit has auth fields; connecting toolkits that need no credentials; backend metadata not yet populated for a newly added toolkit.","solutions":["Check toolkit.authConfigDetails (or toolkit.authScheme) before requesting auth fields, and skip the auth step for NO_AUTH toolkits.","If the toolkit should require auth, verify the slug and upgrade @composio/core — the toolkit's auth metadata may have changed.","Handle ComposioAuthConfigNotFoundError and treat it as 'no auth needed' in your flow."],"exampleFix":"// before\nconst fields = await composio.toolkits.getAuthConfigCreationFields('no_auth_toolkit');\n\n// after\nconst toolkit = await composio.toolkits.get({ toolkit: 'no_auth_toolkit' });\nif (!toolkit.authConfigDetails?.length) {\n  // toolkit needs no auth; skip field collection\n} else {\n  const fields = await composio.toolkits.getAuthConfigCreationFields('no_auth_toolkit');\n}","handlingStrategy":"validation","validationCode":"const tk = await composio.toolkits.get({ toolkit: slug });\nconst needsAuth = !!tk.authConfigDetails?.length;\nif (!needsAuth) { /* skip auth fields */ }","typeGuard":"const hasAuthConfig = (t: Toolkit): boolean =>\n  Array.isArray(t.authConfigDetails) && t.authConfigDetails.length > 0;","tryCatchPattern":"try {\n  return await composio.toolkits.getAuthConfigCreationFields(slug);\n} catch (e) {\n  if (e instanceof ComposioAuthConfigNotFoundError) return { fields: [] }; // no-auth toolkit\n  throw e;\n}","preventionTips":["Check authConfigDetails before requesting auth fields in generic connector UIs.","Treat missing auth config as 'NO_AUTH' rather than an error in user flows."],"tags":["auth-config","toolkit","no-auth","typescript"],"backgroundTag":"missing-auth-configuration","analyzedSha":"64b1b85502b1beeb2379e6c9e8bf1104504fa637","analyzedAt":"2026-08-28T15:39:33.623Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}