{"record":{"id":"f96b889867a88dd6","repo":"ruvnet/ruflo","slug":"anomaly-detected-on-deviceid-trust-score-sco","errorCode":null,"errorMessage":"Anomaly detected on ${deviceId}: trust score ${score.toFixed(3)}","messagePattern":"Anomaly detected on (.+?): trust score (.+?)","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/plugin-iot-cognitum/src/plugin.ts","lineNumber":95,"sourceCode":"    this.healthProbe.start();\n\n    const telemetryIntervalMs = (config['telemetryIntervalMs'] as number) ?? 60_000;\n    this.telemetryIngest = new TelemetryIngestWorker(this.coordinator, {\n      intervalMs: telemetryIntervalMs,\n      onIngestionComplete: (deviceId, vectorCount) => {\n        context.logger.debug(`Telemetry ingest for ${deviceId}: ${vectorCount} vectors`);\n      },\n      onIngestionError: (deviceId, error) => {\n        context.logger.warn(`Telemetry ingest error for ${deviceId}: ${error.message}`);\n      },\n    });\n    this.telemetryIngest.start();\n\n    const anomalyScanIntervalMs = (config['anomalyScanIntervalMs'] as number) ?? 300_000;\n    this.anomalyScan = new AnomalyScanWorker(this.coordinator, {\n      intervalMs: anomalyScanIntervalMs,\n      onAnomalyDetected: (deviceId, score) => {\n        context.logger.warn(`Anomaly detected on ${deviceId}: trust score ${score.toFixed(3)}`);\n        context.eventBus.emit('iot:anomaly-detected', { deviceId, score });\n      },\n      onScanError: (deviceId, error) => {\n        context.logger.warn(`Anomaly scan error for ${deviceId}: ${error.message}`);\n      },\n    });\n    this.anomalyScan.start();\n\n    const meshSyncIntervalMs = (config['meshSyncIntervalMs'] as number) ?? 120_000;\n    this.meshSync = new MeshSyncWorker(this.coordinator, {\n      intervalMs: meshSyncIntervalMs,\n      onMeshPartition: (deviceId, peerCount) => {\n        context.logger.warn(`Mesh partition detected for ${deviceId}: ${peerCount} peers`);\n        context.eventBus.emit('iot:mesh-partition', { deviceId, peerCount });\n      },\n      onSyncError: (deviceId, error) => {\n        context.logger.warn(`Mesh sync error for ${deviceId}: ${error.message}`);\n      },","sourceCodeStart":77,"sourceCodeEnd":113,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/plugin-iot-cognitum/src/plugin.ts#L77-L113","documentation":"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.","triggerScenarios":"Thrown at v3/@claude-flow/plugin-iot-cognitum/src/plugin.ts:95 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Investigate the named device; a low trust score indicates anomalous behavior that may require isolation or firmware checks."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}