ruvnet/ruflo · error

Anomaly detected on ${deviceId}: trust score ${score.toFixed

Error message

Anomaly detected on ${deviceId}: trust score ${score.toFixed(3)}

What it means

Not a thrown error but a warning emitted by the AnomalyScanWorker callback during initialize(): the periodic anomaly scan computed a trust score for a device that fell below the anomaly threshold, signaling potentially compromised or misbehaving IoT telemetry. It fires whenever a scheduled scan flags a device.

Source

Thrown at v3/@claude-flow/plugin-iot-cognitum/src/plugin.ts:95

    this.healthProbe.start();

    const telemetryIntervalMs = (config['telemetryIntervalMs'] as number) ?? 60_000;
    this.telemetryIngest = new TelemetryIngestWorker(this.coordinator, {
      intervalMs: telemetryIntervalMs,
      onIngestionComplete: (deviceId, vectorCount) => {
        context.logger.debug(`Telemetry ingest for ${deviceId}: ${vectorCount} vectors`);
      },
      onIngestionError: (deviceId, error) => {
        context.logger.warn(`Telemetry ingest error for ${deviceId}: ${error.message}`);
      },
    });
    this.telemetryIngest.start();

    const anomalyScanIntervalMs = (config['anomalyScanIntervalMs'] as number) ?? 300_000;
    this.anomalyScan = new AnomalyScanWorker(this.coordinator, {
      intervalMs: anomalyScanIntervalMs,
      onAnomalyDetected: (deviceId, score) => {
        context.logger.warn(`Anomaly detected on ${deviceId}: trust score ${score.toFixed(3)}`);
        context.eventBus.emit('iot:anomaly-detected', { deviceId, score });
      },
      onScanError: (deviceId, error) => {
        context.logger.warn(`Anomaly scan error for ${deviceId}: ${error.message}`);
      },
    });
    this.anomalyScan.start();

    const meshSyncIntervalMs = (config['meshSyncIntervalMs'] as number) ?? 120_000;
    this.meshSync = new MeshSyncWorker(this.coordinator, {
      intervalMs: meshSyncIntervalMs,
      onMeshPartition: (deviceId, peerCount) => {
        context.logger.warn(`Mesh partition detected for ${deviceId}: ${peerCount} peers`);
        context.eventBus.emit('iot:mesh-partition', { deviceId, peerCount });
      },
      onSyncError: (deviceId, error) => {
        context.logger.warn(`Mesh sync error for ${deviceId}: ${error.message}`);
      },

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Investigate the named device; a low trust score indicates anomalous behavior that may require isolation or firmware checks.
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at v3/@claude-flow/plugin-iot-cognitum/src/plugin.ts:95 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/f96b889867a88dd6. Report an issue: GitHub.