{"record":{"id":"afae7da967c64681","repo":"ruvnet/ruflo","slug":"parameter-name-must-be-an-array","errorCode":null,"errorMessage":"Parameter '${name}' must be an array","messagePattern":"Parameter '(.+?)' must be an array","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"v3/plugins/teammate-plugin/src/mcp-tools.ts","lineNumber":49,"sourceCode":"/**\n * Validate string parameter\n */\nfunction validateStringParam(value: unknown, name: string, maxLength: number = MAX_PARAM_LENGTH): string {\n  if (typeof value !== 'string') {\n    throw new Error(`Parameter '${name}' must be a string`);\n  }\n  if (value.length > maxLength) {\n    throw new Error(`Parameter '${name}' exceeds maximum length of ${maxLength}`);\n  }\n  return value;\n}\n\n/**\n * Validate array parameter\n */\nfunction validateArrayParam<T>(value: unknown, name: string, maxItems: number = MAX_ARRAY_ITEMS): T[] {\n  if (!Array.isArray(value)) {\n    throw new Error(`Parameter '${name}' must be an array`);\n  }\n  if (value.length > maxItems) {\n    throw new Error(`Parameter '${name}' exceeds maximum of ${maxItems} items`);\n  }\n  return value as T[];\n}\n\n// ============================================================================\n// Tool Definitions\n// ============================================================================\n\nexport interface MCPTool {\n  name: string;\n  description: string;\n  inputSchema: {\n    type: 'object';\n    properties: Record<string, unknown>;\n    required?: string[];","sourceCodeStart":31,"sourceCodeEnd":67,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/plugins/teammate-plugin/src/mcp-tools.ts#L31-L67","documentation":"MCP input-validation helper: validateArrayParam() received a value that failed Array.isArray for the named parameter (e.g. allowedTools, requiredSkills, tasks). Untrusted JSON-RPC tool arguments contained a non-array where a list was required.","triggerScenarios":"Thrown at v3/plugins/teammate-plugin/src/mcp-tools.ts:49 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Pass an array value for this parameter; wrap scalar input in an array if a single item was intended."],"exampleFix":null,"handlingStrategy":"type-guard","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"}