ruvnet/ruflo · error
Tool already registered
Error message
Tool already registered
What it means
Log warning in the MCP tool registry's register: a tool with the same name is already registered and options.override was not set, so the duplicate registration is refused and register returns false — a sentinel guard, not a thrown error.
Source
Thrown at v3/@claude-flow/mcp/src/tool-registry.ts:67
private readonly tools: Map<string, ToolMetadata> = new Map();
private readonly categoryIndex: Map<string, Set<string>> = new Map();
private readonly tagIndex: Map<string, Set<string>> = new Map();
private defaultContext?: ToolContext;
private authorizer?: ToolAuthorizer;
private totalRegistrations = 0;
private totalLookups = 0;
private totalExecutions = 0;
constructor(private readonly logger: ILogger) {
super();
}
register(tool: MCPTool, options: ToolRegistrationOptions = {}): boolean {
const startTime = performance.now();
if (this.tools.has(tool.name) && !options.override) {
this.logger.warn('Tool already registered', { name: tool.name });
return false;
}
if (options.validate !== false) {
const validation = this.validateTool(tool);
if (!validation.valid) {
this.logger.error('Tool validation failed', {
name: tool.name,
errors: validation.errors,
});
return false;
}
}
const metadata: ToolMetadata = {
tool,
registeredAt: new Date(),
callCount: 0,View on GitHub (pinned to fa13ee4ad6)
Solutions
- Unregister the existing tool first or choose a different tool name; duplicate registration is rejected.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at v3/@claude-flow/mcp/src/tool-registry.ts:67 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/f390e44678665c53.
Report an issue: GitHub.