ruvnet/ruflo · error

Invalid ${configName} configuration:\n${errorMessages}

Error message

Invalid ${configName} configuration:\n${errorMessages}

What it means

ConfigValidator.validateOrThrow ran a zod schema against the supplied data and it failed; the message embeds the configName and each field's path + reason. This is the generic throw-on-invalid wrapper used by validateAgentOrThrow and friends, so the fault is the input data for the named config type.

Source

Thrown at v3/@claude-flow/shared/src/core/config/validator.ts:145

/**
 * Configuration validator class
 */
export class ConfigValidator {
  /**
   * Validate and throw on error
   */
  static validateOrThrow<TInput, TOutput>(
    schema: z.ZodType<TOutput, z.ZodTypeDef, TInput>,
    data: unknown,
    configName: string
  ): TOutput {
    const result = validate(schema, data);

    if (!result.success) {
      const errorMessages = result.errors
        ?.map((e) => `  - ${e.path}: ${e.message}`)
        .join('\n');
      throw new Error(`Invalid ${configName} configuration:\n${errorMessages}`);
    }

    return result.data!;
  }

  /**
   * Validate agent config or throw
   */
  static validateAgentOrThrow(data: unknown): AgentConfig {
    return this.validateOrThrow(AgentConfigSchema, data, 'agent');
  }

  /**
   * Validate task config or throw
   */
  static validateTaskOrThrow(data: unknown): TaskConfig {
    return this.validateOrThrow(TaskConfigSchema, data, 'task');
  }

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Correct the invalid fields in the named configuration file as reported.
  2. Regenerate the config from the template and reapply only intended overrides.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/@claude-flow/shared/src/core/config/validator.ts:145 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/94e099f31850b0f3. Report an issue: GitHub.