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

  1. Inspect server logs for the preceding `ExecuteFlow Error:` line which prints the original error with stack.
  2. Test the child flow in isolation to find which inner node is actually failing.
  3. Fix the reported downstream error (HTTP status, missing credential, bad model config).
  4. 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

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.