ruvnet/ruflo · error

INVALID_TYPE

INVALID_TYPE

Error message

Budget field "${key}" must be a number

What it means

validateBudgets() found budget field 'key' present but not a number (string, NaN, or other type). INVALID_TYPE manifest validation error: budget values must be numeric so the runtime can enforce them arithmetically.

Source

Thrown at v3/@claude-flow/guidance/src/manifest-validator.ts:435

      { key: 'maxTokensOutMtok', max: MAX_BUDGET_LIMITS.maxTokensOutMtok },
      { key: 'maxMemoryWrites', max: MAX_BUDGET_LIMITS.maxMemoryWrites },
    ];

    for (const { key, max } of budgetFields) {
      const value = budgets[key];
      if (value === undefined || value === null) {
        errors.push({
          code: 'MISSING_FIELD',
          field: `budgets.${key}`,
          message: `Budget field "${key}" is required`,
          severity: 'error',
        });
        continue;
      }

      if (typeof value !== 'number' || Number.isNaN(value)) {
        errors.push({
          code: 'INVALID_TYPE',
          field: `budgets.${key}`,
          message: `Budget field "${key}" must be a number`,
          severity: 'error',
        });
        continue;
      }

      if (value < 0) {
        errors.push({
          code: 'BUDGET_NEGATIVE',
          field: `budgets.${key}`,
          message: `Budget field "${key}" must not be negative (got ${value})`,
          severity: 'error',
        });
      }

      if (value > max) {
        errors.push({

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Provide a valid budget configuration with numeric, non-negative fields within the documented maximums.
Defensive patterns

Strategy: type-guard

When it happens

Trigger: Thrown at v3/@claude-flow/guidance/src/manifest-validator.ts:435 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/2e566fb24ef9f629. Report an issue: GitHub.