{"record":{"id":"1610099c0ca7ba87","repo":"ruvnet/ruflo","slug":"invalid-item-id","errorCode":null,"errorMessage":"Invalid item ID","messagePattern":"Invalid item ID","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/services/registry-api.ts","lineNumber":61,"sourceCode":"\n/**\n * Validate rating value\n */\nfunction validateRating(rating: number): boolean {\n  return Number.isInteger(rating) && rating >= 1 && rating <= 5;\n}\n\n/**\n * Rate a plugin or model\n */\nexport async function rateItem(\n  itemId: string,\n  rating: number,\n  itemType: 'plugin' | 'model' = 'plugin',\n  userId?: string\n): Promise<RatingResponse> {\n  if (!validateItemId(itemId)) {\n    throw new Error('Invalid item ID');\n  }\n  if (!validateRating(rating)) {\n    throw new Error('Rating must be integer 1-5');\n  }\n\n  const response = await fetch(`${REGISTRY_API_URL}?action=rate`, {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({\n      itemId,\n      rating,\n      itemType,\n      ...(userId && { userId }),\n    }),\n    signal: AbortSignal.timeout(10000),\n  });\n\n  if (!response.ok) {","sourceCodeStart":43,"sourceCodeEnd":79,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/@claude-flow/cli/src/services/registry-api.ts#L43-L79","documentation":"rateItem() ran the item ID through validateItemId and it failed the format check before any network call is made. The itemId supplied for the plugin/model rating is empty or not a valid registry identifier.","triggerScenarios":"Thrown at v3/@claude-flow/cli/src/services/registry-api.ts:61 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass a valid registry item ID (non-empty, expected format)"],"exampleFix":"Pass a valid registry item ID (existing, correctly formatted identifier) to the rating API.","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-14T05:17:10.506Z"}