{"record":{"id":"290be468dd3cc0c2","repo":"ruvnet/ruflo","slug":"plugin-id-required","errorCode":null,"errorMessage":"Plugin ID required","messagePattern":"Plugin ID required","errorType":"http","errorClass":null,"httpStatus":400,"severity":"error","filePath":"v3/@claude-flow/cli/cloud-functions/publish-registry/index.js","lineNumber":298,"sourceCode":"\n      case 'import-model': {\n        const { cid } = req.query;\n\n        if (!cid) {\n          return res.status(400).json({ error: 'CID required' });\n        }\n\n        const result = await importModel(cid);\n        await trackEvent(bucket, 'model-import', cid);\n\n        return res.json(result);\n      }\n\n      case 'track-download': {\n        const { pluginId } = req.body || req.query;\n\n        if (!pluginId) {\n          return res.status(400).json({ error: 'Plugin ID required' });\n        }\n\n        await trackEvent(bucket, 'download', pluginId);\n        return res.json({ success: true });\n      }\n\n      case 'analytics': {\n        const { period = '7d' } = req.query;\n\n        // Read analytics files\n        const [files] = await bucket.getFiles({ prefix: 'analytics/' });\n        const analytics = {\n          downloads: {},\n          exports: 0,\n          imports: 0,\n          publishes: 0,\n        };\n","sourceCodeStart":280,"sourceCodeEnd":316,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/cli/cloud-functions/publish-registry/index.js#L280-L316","documentation":"The 'track-download' action found no pluginId in the body or query. Input-presence guard: download analytics need an item to attribute the event to; the request is rejected with 400 rather than recording an anonymous download.","triggerScenarios":"Thrown at v3/@claude-flow/cli/cloud-functions/publish-registry/index.js:298 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide all required parameters listed in the message.","Validate required fields before dispatch and report the full set of missing fields at once."],"exampleFix":null,"handlingStrategy":"validation","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"}