ruvnet/ruflo · error

[mcp] multimodal input but configured model missing or inval

Error message

[mcp] multimodal input but configured model missing or invalid; skipping MCP route

What it means

Log warning in resolveRouterTarget: the request contains image input but LLM_ROUTER_MULTIMODAL_MODEL is unset or matches no loaded model, so the MCP route is skipped and the request is served without MCP tooling.

Source

Thrown at ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts:55

}: RouterResolutionInput): Promise<RouterResolutionResult> {
	let targetModel = model;
	let candidateModelId: string | undefined;
	let resolvedRoute: string | undefined;
	let runMcp = true;

	if (!model.isRouter) {
		return { runMcp, targetModel };
	}

	try {
		const mod = await import("../../models");
		const allModels = mod.models as ProcessedModel[];

		if (hasImageInput) {
			const multimodalCandidate = findConfiguredMultimodalModel(allModels);
			if (!multimodalCandidate) {
				runMcp = false;
				logger.warn(
					{ configuredModel: config.LLM_ROUTER_MULTIMODAL_MODEL },
					"[mcp] multimodal input but configured model missing or invalid; skipping MCP route"
				);
			} else {
				targetModel = multimodalCandidate;
				candidateModelId = multimodalCandidate.id ?? multimodalCandidate.name;
				resolvedRoute = "multimodal";
			}
		} else {
			// If tools are enabled and at least one MCP server is active, prefer a tools-capable model
			const toolsEnabled = isRouterToolsBypassEnabled();
			const hasToolsActive = hasActiveToolsSelection(locals);

			if (toolsEnabled && hasToolsActive) {
				const found = pickToolsCapableModel(allModels);
				if (found) {
					targetModel = found;
					candidateModelId = found.id ?? found.name;

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Configure a valid multimodal-capable model for the MCP route, or send text-only input.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts:55 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/23b3622dcd4143fa. Report an issue: GitHub.