n8n-io/n8n · error · Error
Sticky notes do not support input connections
Error message
Sticky notes do not support input connections
What it means
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.
Source
Thrown at packages/@n8n/workflow-sdk/src/workflow-builder/node-builders/node-builder.ts:1149
},
};
}
update(config: Partial<NodeConfig>): NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void> {
const newContent = (config.parameters?.content as string) ?? this.config.parameters?.content;
const newConfig: StickyNoteConfig = {
position: config.position ?? this.config.position,
color: (config.parameters?.color as number) ?? (this.config.parameters?.color as number),
width: (config.parameters?.width as number) ?? (this.config.parameters?.width as number),
height: (config.parameters?.height as number) ?? (this.config.parameters?.height as number),
name: config.name ?? this.name,
};
// Pass empty nodes array since update doesn't recalculate bounding box
return new StickyNoteInstance(newContent, [], newConfig);
}
input(_index: number): InputTarget {
throw new Error('Sticky notes do not support input connections');
}
output(_index: number): OutputSelector<'n8n-nodes-base.stickyNote', 'v1', void> {
throw new Error('Sticky notes do not support output connections');
}
to<T extends NodeInstance<string, string, unknown>>(
_target: T | T[] | InputTarget,
_outputIndex?: number,
): NodeChain<NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void>, T> {
throw new Error('Sticky notes do not support connections');
}
onError<T extends NodeInstance<string, string, unknown>>(_handler: T): this {
throw new Error('Sticky notes do not support error handlers');
}
getConnections(): DeclaredConnection[] {View on GitHub (pinned to 5ac6606e81)
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.
Example fix
// before for (const n of allNodes) targets.push(n.input(0)); // throws on sticky // after const targets = allNodes .filter((n) => n.type !== 'n8n-nodes-base.stickyNote') .map((n) => n.input(0));
Defensive patterns
Strategy: type-guard
Validate before calling
const STICKY = 'n8n-nodes-base.stickyNote';
function safeInput(node: NodeInstance): InputTarget {
if (node.type === STICKY) throw new Error('Sticky notes have no input');
return node.input(0);
} Type guard
function isStickyNote(node: NodeInstance): node is NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void> {
return node.type === 'n8n-nodes-base.stickyNote';
} Prevention
- 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.
When it happens
Trigger: Calling stickyNode.input(0); generic code that builds connection targets via .input() for every node in a list including stickies.
Common situations: Auto-layout or auto-wiring utility that does not filter sticky notes; treating a sticky return value as a chainable node.
Related errors
- Sticky notes do not support output connections
- Sticky notes do not support connections
- SplitInBatches node input connections are managed by SplitIn
- SplitInBatches node output connections are managed by SplitI
- SplitInBatches node connections are managed by SplitInBatche
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/968f0d271823b336.
Report an issue: GitHub.