ruvnet/ruflo · error · Error
tool authorization is required and cannot be disabled
Error message
tool authorization is required and cannot be disabled
What it means
setToolAuthorizer() was called with no authorizer while the server config still has requireToolAuthorization enabled. Disabling the authorizer under mandatory authorization is refused — flip requireToolAuthorization off first if authorization is truly meant to be dropped.
Source
Thrown at v3/@claude-flow/mcp/src/server.ts:318
this.emit('server:stopped');
} catch (error) {
this.logger.error('Error stopping MCP server', { error });
throw error;
}
}
registerTool(tool: MCPTool): boolean {
return this.toolRegistry.register(tool);
}
registerTools(tools: MCPTool[]): { registered: number; failed: string[] } {
return this.toolRegistry.registerBatch(tools);
}
setToolAuthorizer(authorizer?: ToolAuthorizer): void {
if (this.config.requireToolAuthorization && !authorizer) {
throw new Error('tool authorization is required and cannot be disabled');
}
this.toolRegistry.setAuthorizer(authorizer);
}
unregisterTool(name: string): boolean {
return this.toolRegistry.unregister(name);
}
async getHealthStatus(): Promise<{
healthy: boolean;
error?: string;
metrics?: Record<string, number>;
}> {
try {
const transportHealth = this.transports.length > 0
? await Promise.all(this.transports.map((transport) => transport.getHealthStatus()))
: [{ healthy: false, error: 'Transport not initialized' }];
View on GitHub (pinned to fa13ee4ad6)
Solutions
- Keep tool authorization enabled; supply a permissive authorizer if all tools should be allowed.
- Recreate the server without the mandatory-authorization constraint if the deployment genuinely does not need it.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Configuration or a call attempts to disable tool authorization on a server where it is mandatory.
Common situations: A caller sets requireToolAuthorization=false after the server was created with authorization enforced.
AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18).
Data as JSON: /api/errors/8ba14c8d0bcfd226.
Report an issue: GitHub.