n8n-io/n8n · error · Error
Sticky notes do not support output connections
Error message
Sticky notes do not support output connections
What it means
Sticky notes are canvas annotations, not executable nodes: the StickyNote builder's output() method always throws because a sticky note has no output connections to select. Calling it is a builder-API misuse, not a runtime workflow failure.
Solutions
- Do not call .output() on a StickyNoteInstance.
- Filter sticky notes out before applying fan-out logic.
- Pass stickies to workflow() as standalone documentation elements.
Example fix
// before stickyNode.output(0).to(target); // throws // after workflow(source.to(target), stickyNote); // sticky added standalone
Defensive patterns
Strategy: type-guard
Validate before calling
const STICKY = 'n8n-nodes-base.stickyNote';
function safeOutput(node: NodeInstance, i: number): OutputSelector<any, any, any> {
if (node.type === STICKY) throw new Error('Sticky notes have no output');
return node.output(i);
} Type guard
function isStickyNote(node: NodeInstance): node is NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void> {
return node.type === 'n8n-nodes-base.stickyNote';
} Prevention
- Never call .output() on a sticky note; it has no ports.
- Filter stickies out before fan-out loops.
- Add stickies to workflow() separately from the connection chain.
When it happens
Trigger: Calling stickyNode.output(0); chaining stickyNode.output(0).to(target); generic code that fans out from every node.
Common situations: Treating the sticky return value as chainable; auto-wiring utility that calls .output() uniformly; assuming sticky notes behave like processing nodes.
Related errors
- Sticky notes do not support connections
- Sticky notes do not support input connections
- SplitInBatches node connections are managed by…
- SplitInBatches node input connections are managed by…
- SplitInBatches node output connections are managed by…
AI-assisted analysis of n8n-io/n8n@5ac6606e81 (2026-08-12).
Data as JSON: /api/errors/353d9a104199c210.
Report an issue: GitHub.
Appendix: source
Thrown at packages/@n8n/workflow-sdk/src/workflow-builder/node-builders/node-builder.ts:1153
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[] {
return [];
}
}
View on GitHub (pinned to 5ac6606e81)