{"record":{"id":"be0b766b076aef87","repo":"n8n-io/n8n","slug":"nodes-not-found","errorCode":"NODES_NOT_FOUND","errorMessage":"Node with ID \"${nodeId}\" not found in workflow","messagePattern":"Node with ID \"(.+?)\" not found in workflow","errorType":"error_code","errorClass":"NodeNotFoundError","httpStatus":null,"severity":"error","filePath":"packages/@n8n/ai-workflow-builder.ee/src/tools/connect-nodes.tool.ts","lineNumber":97,"sourceCode":"\t\t\t\tconst state = getWorkflowState();\n\t\t\t\tconst workflow = getCurrentWorkflow(state);\n\n\t\t\t\t// Report progress\n\t\t\t\treportProgress(reporter, 'Finding nodes to connect...');\n\n\t\t\t\t// Find source and target nodes\n\t\t\t\tlet matchedSourceNode = validateNodeExists(validatedInput.sourceNodeId, workflow.nodes);\n\t\t\t\tlet matchedTargetNode = validateNodeExists(validatedInput.targetNodeId, workflow.nodes);\n\n\t\t\t\t// Check if both nodes exist\n\t\t\t\tif (!matchedSourceNode || !matchedTargetNode) {\n\t\t\t\t\tconst missingNodeId = !matchedSourceNode\n\t\t\t\t\t\t? validatedInput.sourceNodeId\n\t\t\t\t\t\t: validatedInput.targetNodeId;\n\t\t\t\t\tconst nodeError = new NodeNotFoundError(missingNodeId);\n\t\t\t\t\tconst error = {\n\t\t\t\t\t\tmessage: nodeError.message,\n\t\t\t\t\t\tcode: 'NODES_NOT_FOUND',\n\t\t\t\t\t\tdetails: {\n\t\t\t\t\t\t\tsourceNodeId: validatedInput.sourceNodeId,\n\t\t\t\t\t\t\ttargetNodeId: validatedInput.targetNodeId,\n\t\t\t\t\t\t\tfoundSource: !!matchedSourceNode,\n\t\t\t\t\t\t\tfoundTarget: !!matchedTargetNode,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\treporter.error(error);\n\t\t\t\t\treturn createErrorResponse(config, error);\n\t\t\t\t}\n\n\t\t\t\t// Find node type descriptions\n\t\t\t\tconst sourceNodeType = nodeTypes.find((nt) => nt.name === matchedSourceNode!.type);\n\t\t\t\tconst targetNodeType = nodeTypes.find((nt) => nt.name === matchedTargetNode!.type);\n\n\t\t\t\tif (!sourceNodeType || !targetNodeType) {\n\t\t\t\t\tconst missingType = !sourceNodeType ? matchedSourceNode.type : matchedTargetNode.type;\n\t\t\t\t\tconst typeError = new NodeTypeNotFoundError(missingType);","sourceCodeStart":79,"sourceCodeEnd":115,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/ai-workflow-builder.ee/src/tools/connect-nodes.tool.ts#L79-L115","documentation":"Error \"Node with ID \"${nodeId}\" not found in workflow\" thrown in n8n-io/n8n.","triggerScenarios":"Thrown at packages/@n8n/ai-workflow-builder.ee/src/tools/connect-nodes.tool.ts:97 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}