{"record":{"id":"23b3622dcd4143fa","repo":"ruvnet/ruflo","slug":"mcp-multimodal-input-but-configured-model-missin","errorCode":null,"errorMessage":"[mcp] multimodal input but configured model missing or invalid; skipping MCP route","messagePattern":"\\[mcp\\] multimodal input but configured model missing or invalid; skipping MCP route","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts","lineNumber":55,"sourceCode":"}: RouterResolutionInput): Promise<RouterResolutionResult> {\n\tlet targetModel = model;\n\tlet candidateModelId: string | undefined;\n\tlet resolvedRoute: string | undefined;\n\tlet runMcp = true;\n\n\tif (!model.isRouter) {\n\t\treturn { runMcp, targetModel };\n\t}\n\n\ttry {\n\t\tconst mod = await import(\"../../models\");\n\t\tconst allModels = mod.models as ProcessedModel[];\n\n\t\tif (hasImageInput) {\n\t\t\tconst multimodalCandidate = findConfiguredMultimodalModel(allModels);\n\t\t\tif (!multimodalCandidate) {\n\t\t\t\trunMcp = false;\n\t\t\t\tlogger.warn(\n\t\t\t\t\t{ configuredModel: config.LLM_ROUTER_MULTIMODAL_MODEL },\n\t\t\t\t\t\"[mcp] multimodal input but configured model missing or invalid; skipping MCP route\"\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\ttargetModel = multimodalCandidate;\n\t\t\t\tcandidateModelId = multimodalCandidate.id ?? multimodalCandidate.name;\n\t\t\t\tresolvedRoute = \"multimodal\";\n\t\t\t}\n\t\t} else {\n\t\t\t// If tools are enabled and at least one MCP server is active, prefer a tools-capable model\n\t\t\tconst toolsEnabled = isRouterToolsBypassEnabled();\n\t\t\tconst hasToolsActive = hasActiveToolsSelection(locals);\n\n\t\t\tif (toolsEnabled && hasToolsActive) {\n\t\t\t\tconst found = pickToolsCapableModel(allModels);\n\t\t\t\tif (found) {\n\t\t\t\t\ttargetModel = found;\n\t\t\t\t\tcandidateModelId = found.id ?? found.name;","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts#L37-L73","documentation":"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.","triggerScenarios":"Thrown at ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/routerResolution.ts:55 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Configure a valid multimodal-capable model for the MCP route, or send text-only input."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}