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
- 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.