{"record":{"id":"66a3bf46e46ff466","repo":"n8n-io/n8n","slug":"node-type-not-found-66a3bf","errorCode":"NODE_TYPE_NOT_FOUND","errorMessage":"Node type \"${nodeType}\" not found","messagePattern":"Node type \"(.+?)\" not found","errorType":"error_code","errorClass":"NodeTypeNotFoundError","httpStatus":null,"severity":"error","filePath":"packages/@n8n/ai-workflow-builder.ee/src/tools/helpers/validation.ts","lineNumber":112,"sourceCode":" * Create a node not found error\n */\nexport function createNodeNotFoundError(nodeIdentifier: string): ToolError {\n\tconst error = new NodeNotFoundError(nodeIdentifier);\n\treturn {\n\t\tmessage: error.message,\n\t\tcode: 'NODE_NOT_FOUND',\n\t\tdetails: { nodeIdentifier },\n\t};\n}\n\n/**\n * Create a node type not found error\n */\nexport function createNodeTypeNotFoundError(nodeTypeName: string): ToolError {\n\tconst error = new NodeTypeNotFoundError(nodeTypeName);\n\treturn {\n\t\tmessage: error.message,\n\t\tcode: 'NODE_TYPE_NOT_FOUND',\n\t\tdetails: { nodeTypeName },\n\t};\n}\n\n/**\n * Create a node parameter is too large error\n */\nexport function createNodeParameterTooLargeError(\n\tnodeId: string,\n\tparameter: string,\n\tmaxSize: number,\n): ToolError {\n\tconst error = new ParameterTooLargeError('Parameter value is too large to retrieve', {\n\t\tparameter,\n\t\tnodeId,\n\t\tmaxSize,\n\t});\n","sourceCodeStart":94,"sourceCodeEnd":130,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/ai-workflow-builder.ee/src/tools/helpers/validation.ts#L94-L130","documentation":"Factory createNodeTypeNotFoundError wraps a NodeTypeNotFoundError. It signals that a node's type string (e.g. '@n8n/n8n-nodes-base.httpRequest') is not present in the INodeTypeDescription[] registry passed to the builder. The node exists in workflow.nodes but its type is unknown to this environment.","triggerScenarios":"A workflow references a node type that is not registered: missing community/custom node package, deprecated/renamed type, or version skew between workflow author and runtime.","commonSituations":"Community node not installed in this n8n instance; workflow authored on a newer version with a renamed type; custom node package failed to load.","solutions":["Install the missing node package so its type registers.","Check the exact type string spelling (including scope prefix) against the registry.","Substitute an equivalent built-in node type if the original is unavailable."],"exampleFix":null,"handlingStrategy":"type-guard","validationCode":"import { findNodeType } from '@/tools/helpers/validation';\n\n// Confirm the type is registered before operating on the node.\nconst nt = findNodeType(node.type, node.typeVersion ?? 1, nodeTypes);\nif (!nt) { /* install missing package or pick a substitute type */ }","typeGuard":"function isRegisteredNodeType(typeName: string, types: INodeTypeDescription[]): boolean {\n  return types.some((t) => t.name === typeName);\n}","tryCatchPattern":"const res = await someTool.invoke(input);\nif (isToolError(res) && res.code === 'NODE_TYPE_NOT_FOUND') {\n  const missing = (res.details as any).nodeTypeName;\n  // surface 'install package providing <missing>' to the operator\n}","preventionTips":["Keep the node type registry in sync with installed packages.","Validate every node.type in imported workflow JSON against the registry before operating.","Pin node package versions to avoid rename/deprecation surprises on upgrade."],"tags":["workflow-builder","node-types","registry","environment"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}