ComposioHQ/composio · error · ValidationError
Failed to parse connected account list query
Error message
Failed to parse connected account list query
What it means
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.
Source
Thrown at ts/packages/core/src/models/ConnectedAccounts.ts:112
* userIds: ['user123']
* });
*
* // List accounts for a specific toolkit
* const githubAccounts = await composio.connectedAccounts.list({
* toolkitSlugs: ['github']
* });
* ```
*/
async list(
query?: ConnectedAccountListParams,
requestOptions?: ComposioRequestOptions
): Promise<ConnectedAccountListResponse> {
let rawQuery: ConnectedAccountListParamsRaw | undefined = undefined;
if (query) {
const parsedQuery = ConnectedAccountListParamsSchema.safeParse(query);
if (!parsedQuery.success) {
throw new ValidationError('Failed to parse connected account list query', {
cause: parsedQuery.error,
});
}
rawQuery = {
auth_config_ids: parsedQuery.data.authConfigIds,
cursor: parsedQuery.data.cursor?.toString(),
limit: parsedQuery.data.limit,
order_by: parsedQuery.data.orderBy,
// Cast widens to match the Stainless-generated client params, which
// lag behind the live API enum. Apollo accepts the union value at
// runtime (`z.nativeEnum(ConnectionStatusEnum)` on the query param);
// remove the cast once `@composio/client` is regenerated.
statuses: parsedQuery.data.statuses as ConnectedAccountListParamsRaw['statuses'],
toolkit_slugs: parsedQuery.data.toolkitSlugs,
user_ids: parsedQuery.data.userIds,
...(parsedQuery.data.accountType !== undefined && {
account_type: parsedQuery.data.accountType,
}),View on GitHub (pinned to 64b1b85502)
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
Example fix
// before
connectedAccounts.list({ status: 'Connected' });
// after
connectedAccounts.list({ status: validStatusFromSchema }); // use an enum value from ConnectedAccountListParamsSchema Defensive patterns
Strategy: validation
Validate before calling
import { ConnectedAccountListParamsSchema } from '@composio/core';
if (query) { const c = ConnectedAccountListParamsSchema.safeParse(query); if (!c.success) console.error(c.error.issues); } Type guard
const validListQuery = (q: unknown): boolean => ConnectedAccountListParamsSchema.safeParse(q).success;
Try / catch
try { await connectedAccounts.list(query); } catch (e) { if (e instanceof ValidationError && e.message.includes('connected account list')) fixFromZodIssues(e.cause); } Prevention
- Use SDK-level camelCase param names, not raw API snake_case
- Omit optional filters you don't need
When it happens
Trigger: 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).
Common situations: Passing raw API parameter names to the SDK layer; stale enum values after API changes; unvalidated pagination cursors from other sources.
Understand the failure class
Background: Schema validation failed / invalid input schema: payload rejected because its shape doesn't match the expected schema — this error's family across 28 libraries.
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
Related errors
- Failed to parse manage connections config
- Failed to parse auth config create options
- Failed to parse auth config update data
- Failed to parse create connected account link options
- Failed to parse connected account refresh options
AI-assisted analysis of ComposioHQ/composio@64b1b85502 (2026-08-28).
Data as JSON: /api/errors/80c5207485b42f4e.
Report an issue: GitHub.