ruvnet/ruflo · error
Plugin '${name}' health check failed
Error message
Plugin '${name}' health check failed What it means
Log warning in startHealthChecks' interval: an initialized plugin's healthCheck() returned false (or threw); the plugin is flagged unhealthy so the loader/operator can react, while the check loop keeps running for other plugins.
Source
Thrown at v3/@claude-flow/shared/src/plugin-loader.ts:606
if (info.plugin.dependencies?.includes(pluginName)) {
dependents.push(name);
}
}
return dependents;
}
/**
* Start periodic health checks
*/
private startHealthChecks(): void {
this.healthCheckIntervalId = setInterval(async () => {
for (const [name, info] of Array.from(this.registry.getAllPlugins().entries())) {
if (info.state === 'initialized' && info.plugin.healthCheck) {
try {
const healthy = await info.plugin.healthCheck();
if (!healthy) {
console.warn(`Plugin '${name}' health check failed`);
this.registry.updatePluginState(name, 'error', new Error('Health check failed'));
}
} catch (error) {
console.error(`Plugin '${name}' health check error:`, error);
this.registry.updatePluginState(name, 'error', error instanceof Error ? error : new Error(String(error)));
}
}
}
}, this.config.healthCheckInterval);
}
/**
* Utility: Run promise with timeout
*/
private async withTimeout<T>(promise: Promise<T>, timeoutMs: number, errorMessage: string): Promise<T> {
return Promise.race([
promise,
new Promise<T>((_, reject) =>View on GitHub (pinned to fa13ee4ad6)
Solutions
- Inspect the plugin's health check failure detail; fix the plugin's health endpoint or remove the plugin if it is unhealthy.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at v3/@claude-flow/shared/src/plugin-loader.ts:606 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/310d84ee249cb938.
Report an issue: GitHub.