FlowiseAI/Flowise · warning · Error
Aborted!
Error message
Aborted!
What it means
Thrown by agentNode at the start of execution when `abortControllerSignal.signal.aborted` is already true. This indicates the user (or a parent flow) cancelled the run before the agent's invoke began. The signal is passed in from options.signal.
Source
Thrown at packages/components/nodes/multiagents/Supervisor/Supervisor.ts:682
checkpointMemory: nodeData.inputs?.agentMemory
}
return returnOutput
}
}
async function agentNode(
{
state,
agent,
nodeId,
abortControllerSignal
}: { state: ITeamState; agent: AgentExecutor | Runnable; nodeId: string; abortControllerSignal: AbortController },
config: RunnableConfig
) {
try {
if (abortControllerSignal.signal.aborted) {
throw new Error('Aborted!')
}
const result = await agent.invoke({ ...state, signal: abortControllerSignal.signal }, config)
const additional_kwargs: ICommonObject = { nodeId, type: 'supervisor' }
result.additional_kwargs = { ...result.additional_kwargs, ...additional_kwargs }
return result
} catch (error) {
throw new Error('Aborted!')
}
}
const processImageMessage = async (
index: number,
llm: BaseChatModel,
prompt: ChatPromptTemplate,
nodeData: INodeData,
options: ICommonObject
) => {
let multiModalMessageContent: MessageContentImageUrl[] = []View on GitHub (pinned to abe4a8601a)
Solutions
- Treat as expected control flow — ensure the caller surfaces 'cancelled by user' rather than as a crash.
- If unexpected, inspect where options.signal is being aborted prematurely (middleware, socket disconnect handler).
- Add a graceful no-op return when aborted instead of throwing, if your graph supports partial results.
Example fix
// before
if (abortControllerSignal.signal.aborted) {
throw new Error('Aborted!')
}
// after
if (abortControllerSignal.signal.aborted) {
return { messages: [], cancelled: true }
} Defensive patterns
Strategy: try-catch
Validate before calling
if (abortControllerSignal.signal.aborted) {
return { messages: [], cancelled: true }
} Try / catch
try {
// ... agent.invoke
} catch (e) {
if (abortControllerSignal.signal.aborted || (e as Error)?.name === 'AbortError') {
// expected cancellation
return { messages: [], cancelled: true }
}
throw e
} Prevention
- Differentiate user-initiated aborts from system errors in your error reporter.
- Check signal.aborted early and short-circuit cleanly.
- Avoid calling agentNode when the parent graph already cancelled.
When it happens
Trigger: Calling agentNode after the abort controller was already triggered — e.g. a stop button pressed during graph setup, or a parent supervisor loop that aborted while scheduling this worker node.
Common situations: User cancels a long-running multi-agent chat; chatflow-level timeout fires; upstream node aborted and the graph still attempted to invoke downstream agent nodes.
Related errors
- Aborted!
- Supervisor name is required!
- This agent only compatible with function calling models.
- Worker name is required!
- Worker prompt is required!
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/689ee3b7a35c6fb6.
Report an issue: GitHub.