FlowiseAI/Flowise · error · Error
${error}
Error message
${error} What it means
Thrown at the tail of ExecuteFlow_Agentflow.run()'s catch block when any error occurs while executing a nested agentflow. The block builds a detailed errorResponse object (status, headers, data) but then discards it, throwing `new Error(error)` where `error` is the caught Error. `new Error(error)` coerces the Error to a string ("Error: <message>"), destroying the stack trace and the structured detail that was just assembled. The real failure is some downstream node/HTTP call inside the executed flow.
Source
Thrown at packages/components/nodes/agentflow/ExecuteFlow/ExecuteFlow.ts:325
}
]
},
error: {
name: error.name || 'Error',
message: error.message || 'An error occurred during the execution of the flow'
},
state
}
// Add more error details if available
if (error.response) {
errorResponse.error.status = error.response.status
errorResponse.error.statusText = error.response.statusText
errorResponse.error.data = error.response.data
errorResponse.error.headers = error.response.headers
}
throw new Error(error)
}
}
}
module.exports = { nodeClass: ExecuteFlow_Agentflow }
View on GitHub (pinned to abe4a8601a)
Solutions
- Inspect server logs for the preceding `ExecuteFlow Error:` line which prints the original error with stack.
- Test the child flow in isolation to find which inner node is actually failing.
- Fix the reported downstream error (HTTP status, missing credential, bad model config).
- Patch the throw to preserve causality: `throw new Error(error instanceof Error ? error.message : String(error), { cause: error })` so the stack and the assembled errorResponse are not lost.
Example fix
// before
throw new Error(error)
// after
throw new Error(error instanceof Error ? error.message : String(error), { cause: error }) Defensive patterns
Strategy: try-catch
Try / catch
// Caller of ExecuteFlow_Agentflow.run()
try {
const out = await execFlowNode.run(nodeData, input, options)
} catch (e) {
// message is stringified original; check server log line 'ExecuteFlow Error:' for the cause
const cause = (e as Error).message
if (cause.startsWith('Error: ')) {
// stack was lost — surface to user and check logs
}
throw e
} Prevention
- Validate child flow nodes (credentials, model, URL) before composing them into an ExecuteFlow.
- Run each sub-flow standalone before wiring it into ExecuteFlow.
- Keep server logging at debug during flow development to capture the original error.
When it happens
Trigger: Any exception bubbling out of the inner flow execution (a child node throws, an LLM/HTTP call fails, a tool errors). The catch at ExecuteFlow.ts:295 catches it, logs `ExecuteFlow Error:`, and re-throws the stringified form.
Common situations: A sub-flow node is misconfigured; a downstream HTTP/LLM node returns a non-2xx; a referenced credential is missing inside the child flow. Because the structured errorResponse is thrown away, operators only see the opaque message and must read server logs.
Related errors
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/ff29dc06c87fb405.
Report an issue: GitHub.