{"record":{"id":"968f0d271823b336","repo":"n8n-io/n8n","slug":"sticky-notes-do-not-support-input-connections","errorCode":null,"errorMessage":"Sticky notes do not support input connections","messagePattern":"Sticky notes do not support input connections","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/@n8n/workflow-sdk/src/workflow-builder/node-builders/node-builder.ts","lineNumber":1149,"sourceCode":"\t\t\t},\n\t\t};\n\t}\n\n\tupdate(config: Partial<NodeConfig>): NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void> {\n\t\tconst newContent = (config.parameters?.content as string) ?? this.config.parameters?.content;\n\t\tconst newConfig: StickyNoteConfig = {\n\t\t\tposition: config.position ?? this.config.position,\n\t\t\tcolor: (config.parameters?.color as number) ?? (this.config.parameters?.color as number),\n\t\t\twidth: (config.parameters?.width as number) ?? (this.config.parameters?.width as number),\n\t\t\theight: (config.parameters?.height as number) ?? (this.config.parameters?.height as number),\n\t\t\tname: config.name ?? this.name,\n\t\t};\n\t\t// Pass empty nodes array since update doesn't recalculate bounding box\n\t\treturn new StickyNoteInstance(newContent, [], newConfig);\n\t}\n\n\tinput(_index: number): InputTarget {\n\t\tthrow new Error('Sticky notes do not support input connections');\n\t}\n\n\toutput(_index: number): OutputSelector<'n8n-nodes-base.stickyNote', 'v1', void> {\n\t\tthrow new Error('Sticky notes do not support output connections');\n\t}\n\n\tto<T extends NodeInstance<string, string, unknown>>(\n\t\t_target: T | T[] | InputTarget,\n\t\t_outputIndex?: number,\n\t): NodeChain<NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void>, T> {\n\t\tthrow new Error('Sticky notes do not support connections');\n\t}\n\n\tonError<T extends NodeInstance<string, string, unknown>>(_handler: T): this {\n\t\tthrow new Error('Sticky notes do not support error handlers');\n\t}\n\n\tgetConnections(): DeclaredConnection[] {","sourceCodeStart":1131,"sourceCodeEnd":1167,"githubUrl":"https://github.com/n8n-io/n8n/blob/5ac6606e81f67bb9534255570cd4e86fd8101eee/packages/@n8n/workflow-sdk/src/workflow-builder/node-builders/node-builder.ts#L1131-L1167","documentation":"Thrown by StickyNoteInstance.input(). Sticky notes (n8n-nodes-base.stickyNote) are documentation-only canvas elements with no input or output ports; they cannot receive connections. Calling .input() is blocked to prevent wiring a connection into a sticky.","triggerScenarios":"Calling stickyNode.input(0); generic code that builds connection targets via .input() for every node in a list including stickies.","commonSituations":"Auto-layout or auto-wiring utility that does not filter sticky notes; treating a sticky return value as a chainable node.","solutions":["Filter sticky notes out of any node list before calling connection methods.","Do not call .input() on a StickyNoteInstance; pass stickies to workflow() separately as documentation.","Type-narrow (isStickyNote / type === 'n8n-nodes-base.stickyNote') and skip."],"exampleFix":"// before\nfor (const n of allNodes) targets.push(n.input(0)); // throws on sticky\n// after\nconst targets = allNodes\n  .filter((n) => n.type !== 'n8n-nodes-base.stickyNote')\n  .map((n) => n.input(0));","handlingStrategy":"type-guard","validationCode":"const STICKY = 'n8n-nodes-base.stickyNote';\n\nfunction safeInput(node: NodeInstance): InputTarget {\n  if (node.type === STICKY) throw new Error('Sticky notes have no input');\n  return node.input(0);\n}","typeGuard":"function isStickyNote(node: NodeInstance): node is NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void> {\n  return node.type === 'n8n-nodes-base.stickyNote';\n}","tryCatchPattern":null,"preventionTips":["Filter sticky notes out of node lists before calling connection methods.","Pass stickies to workflow() as standalone documentation elements.","Treat stickies as non-chainable in generic utilities."],"tags":["runtime","builder","sticky-note","connections"],"backgroundTag":null,"analyzedSha":"5ac6606e81f67bb9534255570cd4e86fd8101eee","analyzedAt":"2026-08-12T05:26:35.080Z","schemaVersion":2},"datasetVersion":"2026-08-13T09:17:06.757Z"}