{"record":{"id":"a8dc2d6bb6fcbad3","repo":"FlowiseAI/Flowise","slug":"llm-node-name-is-required","errorCode":null,"errorMessage":"LLM Node name is required!","messagePattern":"LLM Node name is required!","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/components/nodes/sequentialagents/LLMNode/LLMNode.ts","lineNumber":409,"sourceCode":"    }\n\n    async init(nodeData: INodeData, input: string, options: ICommonObject): Promise<any> {\n        // Tools can be connected through ToolNodes\n        let tools = nodeData.inputs?.tools\n        tools = flatten(tools)\n\n        let systemPrompt = nodeData.inputs?.systemMessagePrompt as string\n        systemPrompt = transformBracesWithColon(systemPrompt)\n        let humanPrompt = nodeData.inputs?.humanMessagePrompt as string\n        humanPrompt = transformBracesWithColon(humanPrompt)\n        const llmNodeLabel = nodeData.inputs?.llmNodeName as string\n        const sequentialNodes = nodeData.inputs?.sequentialNode as ISeqAgentNode[]\n        const model = nodeData.inputs?.model as BaseChatModel\n        const promptValuesStr = nodeData.inputs?.promptValues\n        const output = nodeData.outputs?.output as string\n        const llmStructuredOutput = nodeData.inputs?.llmStructuredOutput\n\n        if (!llmNodeLabel) throw new Error('LLM Node name is required!')\n        const llmNodeName = llmNodeLabel.toLowerCase().replace(/\\s/g, '_').trim()\n\n        if (!sequentialNodes || !sequentialNodes.length) throw new Error('Agent must have a predecessor!')\n\n        let llmNodeInputVariablesValues: ICommonObject = {}\n        if (promptValuesStr) {\n            try {\n                llmNodeInputVariablesValues = typeof promptValuesStr === 'object' ? promptValuesStr : JSON.parse(promptValuesStr)\n            } catch (exception) {\n                throw new Error(\"Invalid JSON in the LLM Node's Prompt Input Values: \" + exception)\n            }\n        }\n        llmNodeInputVariablesValues = handleEscapeCharacters(llmNodeInputVariablesValues, true)\n\n        const startLLM = sequentialNodes[0].startLLM\n        const llm = model || startLLM\n        if (nodeData.inputs) nodeData.inputs.model = llm\n","sourceCodeStart":391,"sourceCodeEnd":427,"githubUrl":"https://github.com/FlowiseAI/Flowise/blob/abe4a8601a058047b350c260676826e21dd14101/packages/components/nodes/sequentialagents/LLMNode/LLMNode.ts#L391-L427","documentation":"The LLM Node requires a display name; the label is slugified (lowercased, spaces to underscores) into the LangGraph node identifier. Thrown at init when inputs.llmNodeName is empty.","triggerScenarios":"The 'LLM Node Name' parameter was left blank.","commonSituations":"New node added and saved before naming; name cleared during editing.","solutions":["Enter a non-empty, unique name in the 'LLM Node Name' field.","Avoid name collisions with other sequential nodes (slugified ids must be unique in the graph)."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"const label = (nodeData.inputs?.llmNodeName ?? '').trim()\nif (!label) throw new Error('Provide an LLM Node Name before init')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Add 'name every sequential node' to your authoring checklist.","Keep slugified names unique within the flow."],"tags":["sequential-agents","llm-node","naming","init"],"backgroundTag":null,"analyzedSha":"abe4a8601a058047b350c260676826e21dd14101","analyzedAt":"2026-08-12T16:04:40.823Z","schemaVersion":2},"datasetVersion":"2026-08-12T23:17:12.415Z"}