n8n-io/n8n · error · Error
Sticky notes do not support output connections
Error message
Sticky notes do not support output connections
What it means
Thrown by StickyNoteInstance.output(). Sticky notes have no output ports and cannot originate connections, so .output() — which returns an OutputSelector for fan-out — is blocked.
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)
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 input 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/353d9a104199c210.
Report an issue: GitHub.