{"record":{"id":"98e31babc790860b","repo":"FlowiseAI/Flowise","slug":"supervisor-name-is-required","errorCode":null,"errorMessage":"Supervisor name is required!","messagePattern":"Supervisor name is required!","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/components/nodes/multiagents/Supervisor/Supervisor.ts","lineNumber":121,"sourceCode":"        ]\n    }\n\n    async init(nodeData: INodeData, _: string, options: ICommonObject): Promise<any> {\n        const llm = nodeData.inputs?.model as BaseChatModel\n        const supervisorPrompt = nodeData.inputs?.supervisorPrompt as string\n        const supervisorLabel = nodeData.inputs?.supervisorName as string\n        const _recursionLimit = nodeData.inputs?.recursionLimit as string\n        const recursionLimit = _recursionLimit ? parseFloat(_recursionLimit) : 100\n        const moderations = (nodeData.inputs?.inputModeration as Moderation[]) ?? []\n        const summarization = nodeData.inputs?.summarization as string\n\n        const abortControllerSignal = options.signal as AbortController\n\n        const workersNodes: IMultiAgentNode[] =\n            nodeData.inputs?.workerNodes && nodeData.inputs?.workerNodes.length ? flatten(nodeData.inputs?.workerNodes) : []\n        const workersNodeNames = workersNodes.map((node: IMultiAgentNode) => node.name)\n\n        if (!supervisorLabel) throw new Error('Supervisor name is required!')\n\n        const supervisorName = supervisorLabel.toLowerCase().replace(/\\s/g, '_').trim()\n\n        let multiModalMessageContent: MessageContentImageUrl[] = []\n\n        async function createTeamSupervisor(llm: BaseChatModel, systemPrompt: string, members: string[]): Promise<Runnable> {\n            const memberOptions = ['FINISH', ...members]\n\n            systemPrompt = systemPrompt.replaceAll('{team_members}', members.join(', '))\n\n            let userPrompt = `Given the conversation above, who should act next? Or should we FINISH? Select one of: ${memberOptions.join(\n                ', '\n            )}`\n\n            const tool = new RouteTool({\n                schema: z.object({\n                    reasoning: z.string(),\n                    next: z.enum(['FINISH', ...members]),","sourceCodeStart":103,"sourceCodeEnd":139,"githubUrl":"https://github.com/FlowiseAI/Flowise/blob/abe4a8601a058047b350c260676826e21dd14101/packages/components/nodes/multiagents/Supervisor/Supervisor.ts#L103-L139","documentation":"Thrown by Supervisor.init() when nodeData.inputs.supervisorName is falsy. The supervisor label is lowercased and underscore-joined to form the routing agent's name in the multi-agent team, so an empty name breaks graph construction upstream.","triggerScenarios":"Deploying a Supervisor multiagent node without filling the 'Supervisor Name' input field, or passing an empty/whitespace string. Also when the chatflow import dropped the field.","commonSituations":"Newly added Supervisor node left with default empty name. Cloned chatflow where the name field was cleared. Variable reference resolving to empty.","solutions":["Set a non-empty 'Supervisor Name' in the Supervisor node configuration (e.g. 'Router' or 'Team Lead').","If using a variable reference, ensure it resolves to a non-empty string before the node runs.","Re-import the chatflow from a known-good export that includes the field."],"exampleFix":"// before\ninputs: { supervisorName: '' }\n// after\ninputs: { supervisorName: 'Router' }","handlingStrategy":"validation","validationCode":"function assertSupervisorName(name: unknown): asserts name is string {\n  if (typeof name !== 'string' || !name.trim()) {\n    throw new Error('Supervisor node requires a non-empty \\'Supervisor Name\\'')\n  }\n}","typeGuard":"function isNonEmptySupervisorName(v: unknown): v is string {\n  return typeof v === 'string' && v.trim().length > 0\n}","tryCatchPattern":"try {\n  await supervisorNode.init(nodeData, _, options)\n} catch (e) {\n  if ((e as Error).message === 'Supervisor name is required!') {\n    // set nodeData.inputs.supervisorName to a non-empty value and retry\n  }\n  throw e\n}","preventionTips":["Mark 'Supervisor Name' required in the node input schema (not just optional).","Block chatflow publish when the field is empty.","Provide a sensible default in templates."],"tags":["supervisor","multiagent","validation","configuration"],"backgroundTag":null,"analyzedSha":"abe4a8601a058047b350c260676826e21dd14101","analyzedAt":"2026-08-12T16:04:40.823Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}