ruvnet/ruflo · error

[mcp] tool call failed

Error message

[mcp] tool call failed

What it means

Log warning in executeToolCalls: an individual tool invocation failed (non-abort error); the error message is captured so the failure can be reported back to the model or caller instead of crashing the whole batch.

Source

Thrown at ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/toolInvocation.ts:310

			});
		} catch (err) {
			const errMsg = err instanceof Error ? err.message : String(err);
			const errName = err instanceof Error ? err.name : "";
			const isAbortError =
				abortSignal?.aborted ||
				errName === "AbortError" ||
				errName === "APIUserAbortError" ||
				errMsg === "Request was aborted." ||
				errMsg === "This operation was aborted";
			const message = isAbortError ? "Aborted by user" : errMsg;

			if (isAbortError) {
				logger.debug(
					{ server: mappingEntry.server, tool: mappingEntry.tool },
					"[mcp] tool call aborted by user"
				);
			} else {
				logger.warn(
					{ server: mappingEntry.server, tool: mappingEntry.tool, err: message },
					"[mcp] tool call failed"
				);
			}
			results.push({ index, error: message, uuid: p.uuid, paramsClean: p.paramsClean });
			updatesQueue.push({
				type: MessageUpdateType.Tool,
				subtype: MessageToolUpdateType.Error,
				uuid: p.uuid,
				message,
			});
		}
	});

	// kick off and stream as they finish
	Promise.allSettled(tasks).then(() => updatesQueue.close());

	for await (const update of updatesQueue.iterator()) {

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Check the tool arguments against the tool's input schema and confirm the MCP server implements the tool; the server-side error detail is included in the logged cause.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at ruflo/src/ruvocal/src/lib/server/textGeneration/mcp/toolInvocation.ts:310 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/56b831e294fb6f8d. Report an issue: GitHub.