{"record":{"id":"80c5207485b42f4e","repo":"ComposioHQ/composio","slug":"failed-to-parse-connected-account-list-query","errorCode":null,"errorMessage":"Failed to parse connected account list query","messagePattern":"Failed to parse connected account list query","errorType":"validation","errorClass":"ValidationError","httpStatus":null,"severity":"error","filePath":"ts/packages/core/src/models/ConnectedAccounts.ts","lineNumber":112,"sourceCode":"   *   userIds: ['user123']\n   * });\n   *\n   * // List accounts for a specific toolkit\n   * const githubAccounts = await composio.connectedAccounts.list({\n   *   toolkitSlugs: ['github']\n   * });\n   * ```\n   */\n  async list(\n    query?: ConnectedAccountListParams,\n    requestOptions?: ComposioRequestOptions\n  ): Promise<ConnectedAccountListResponse> {\n    let rawQuery: ConnectedAccountListParamsRaw | undefined = undefined;\n\n    if (query) {\n      const parsedQuery = ConnectedAccountListParamsSchema.safeParse(query);\n      if (!parsedQuery.success) {\n        throw new ValidationError('Failed to parse connected account list query', {\n          cause: parsedQuery.error,\n        });\n      }\n      rawQuery = {\n        auth_config_ids: parsedQuery.data.authConfigIds,\n        cursor: parsedQuery.data.cursor?.toString(),\n        limit: parsedQuery.data.limit,\n        order_by: parsedQuery.data.orderBy,\n        // Cast widens to match the Stainless-generated client params, which\n        // lag behind the live API enum. Apollo accepts the union value at\n        // runtime (`z.nativeEnum(ConnectionStatusEnum)` on the query param);\n        // remove the cast once `@composio/client` is regenerated.\n        statuses: parsedQuery.data.statuses as ConnectedAccountListParamsRaw['statuses'],\n        toolkit_slugs: parsedQuery.data.toolkitSlugs,\n        user_ids: parsedQuery.data.userIds,\n        ...(parsedQuery.data.accountType !== undefined && {\n          account_type: parsedQuery.data.accountType,\n        }),","sourceCodeStart":94,"sourceCodeEnd":130,"githubUrl":"https://github.com/ComposioHQ/composio/blob/64b1b85502b1beeb2379e6c9e8bf1104504fa637/ts/packages/core/src/models/ConnectedAccounts.ts#L94-L130","documentation":"ValidationError from ConnectedAccounts.list: the optional query object failed ConnectedAccountListParamsSchema before being converted to the raw API query (auth_config_ids, cursor, etc.). Only fires when query is provided and malformed.","triggerScenarios":"connectedAccounts.list({ status: 'Connected' }) with an invalid enum value; passing wrong key names (authConfigIds vs auth_config_ids confusion at the wrong layer); invalid cursor or date formats; wrong field types (string where ID array expected).","commonSituations":"Passing raw API parameter names to the SDK layer; stale enum values after API changes; unvalidated pagination cursors from other sources.","solutions":["Read error.cause ZodError for the exact invalid fields","Use SDK-level param names (camelCase like authConfigIds) with valid enum values","Omit query to list everything, then filter","Type the query as ConnectedAccountListParams"],"exampleFix":"// before\nconnectedAccounts.list({ status: 'Connected' });\n// after\nconnectedAccounts.list({ status: validStatusFromSchema }); // use an enum value from ConnectedAccountListParamsSchema","handlingStrategy":"validation","validationCode":"import { ConnectedAccountListParamsSchema } from '@composio/core';\nif (query) { const c = ConnectedAccountListParamsSchema.safeParse(query); if (!c.success) console.error(c.error.issues); }","typeGuard":"const validListQuery = (q: unknown): boolean =>\n  ConnectedAccountListParamsSchema.safeParse(q).success;","tryCatchPattern":"try { await connectedAccounts.list(query); } catch (e) { if (e instanceof ValidationError && e.message.includes('connected account list')) fixFromZodIssues(e.cause); }","preventionTips":["Use SDK-level camelCase param names, not raw API snake_case","Omit optional filters you don't need"],"tags":["validation","zod","connected-accounts","sdk"],"backgroundTag":"schema-validation-failed","analyzedSha":"64b1b85502b1beeb2379e6c9e8bf1104504fa637","analyzedAt":"2026-08-28T15:39:33.623Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}