ruvnet/ruflo · error
[router] tools bypass requested but LLM_ROUTER_TOOLS_MODEL i
Error message
[router] tools bypass requested but LLM_ROUTER_TOOLS_MODEL is not set
What it means
Log warning in pickToolsCapableModel: a tools bypass was requested (active MCP servers detected) but the LLM_ROUTER_TOOLS_MODEL env var is unset, so no preferred tools model can be selected and undefined is returned.
Source
Thrown at ruflo/src/ruvocal/src/lib/server/router/toolsRoute.ts:37
try {
const reqMcp = (locals as LocalsWithMcp | undefined)?.mcp;
const byConfig =
Array.isArray(reqMcp?.selectedServers) && (reqMcp?.selectedServers?.length ?? 0) > 0;
const byName =
Array.isArray(reqMcp?.selectedServerNames) && (reqMcp?.selectedServerNames?.length ?? 0) > 0;
return Boolean(byConfig || byName);
} catch {
return false;
}
}
export function pickToolsCapableModel(
models: ProcessedModel[] | undefined
): ProcessedModel | undefined {
const preferredRaw = (config as unknown as Record<string, string>).LLM_ROUTER_TOOLS_MODEL;
const preferred = preferredRaw?.trim();
if (!preferred) {
logger.warn("[router] tools bypass requested but LLM_ROUTER_TOOLS_MODEL is not set");
return undefined;
}
if (!models?.length) return undefined;
const found = models.find((m) => m.id === preferred || m.name === preferred);
if (!found) {
logger.warn(
{ configuredModel: preferred },
"[router] configured tools model not found; falling back to Arch routing"
);
return undefined;
}
logger.info({ model: found.id ?? found.name }, "[router] using configured tools model");
return found;
}
View on GitHub (pinned to fa13ee4ad6)
Solutions
- Set LLM_ROUTER_TOOLS_MODEL to a configured model name, or do not request the tools bypass route.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at ruflo/src/ruvocal/src/lib/server/router/toolsRoute.ts:37 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/f42dd202a4ad7504.
Report an issue: GitHub.