FlowiseAI/Flowise · error · Error

Invalid flow ID: must be a valid UUID

Error message

Invalid flow ID: must be a valid UUID

What it means

The selected target chatflow id must pass isValidUUID, which matches UUID v4 specifically (requires version digit '4' at position 14 and variant [89ab] at position 19). A missing value, a human-readable chatflow name, or a non-v4 UUID all fail. Validated at init before any HTTP call is made.

Source

Thrown at packages/components/nodes/sequentialagents/ExecuteFlow/ExecuteFlow.ts:175

        const appDataSource = options.appDataSource as DataSource
        const databaseEntities = options.databaseEntities as IDatabaseEntity
        const sequentialNodes = nodeData.inputs?.sequentialNode as ISeqAgentNode[]
        const seqExecuteFlowInput = nodeData.inputs?.seqExecuteFlowInput as string
        const overrideConfig =
            typeof nodeData.inputs?.overrideConfig === 'string' &&
            nodeData.inputs.overrideConfig.startsWith('{') &&
            nodeData.inputs.overrideConfig.endsWith('}')
                ? JSON.parse(nodeData.inputs.overrideConfig)
                : nodeData.inputs?.overrideConfig

        if (!sequentialNodes || !sequentialNodes.length) throw new Error('Execute Flow must have a predecessor!')

        const baseURL = (nodeData.inputs?.baseURL as string) || (options.baseURL as string)
        const returnValueAs = nodeData.inputs?.returnValueAs as string

        // Validate selectedFlowId is a valid UUID
        if (!selectedFlowId || !isValidUUID(selectedFlowId)) {
            throw new Error('Invalid flow ID: must be a valid UUID')
        }

        // Validate baseURL is a valid URL
        if (!baseURL || !isValidURL(baseURL)) {
            throw new Error('Invalid base URL: must be a valid URL')
        }

        const credentialData = await getCredentialData(nodeData.credential ?? '', options)
        const chatflowApiKey = getCredentialParam('chatflowApiKey', credentialData, nodeData)

        if (selectedFlowId === options.chatflowid) throw new Error('Cannot call the same agentflow!')

        let headers = {}
        if (chatflowApiKey) headers = { Authorization: `Bearer ${chatflowApiKey}` }

        const chatflowId = options.chatflowid
        const sessionId = options.sessionId
        const chatId = options.chatId

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Pick the target chatflow from the Execute Flow dropdown so its v4 id is set automatically.
  2. Save the target chatflow first so it is assigned a v4 id.
  3. When integrating programmatically, pass the exact v4 chatflow id from the Flowise API.
Defensive patterns

Strategy: validation

Validate before calling

import { isValidUUID } from '../../../src/validator'
const id = nodeData.inputs?.selectedFlow
if (!id || !isValidUUID(id)) throw new Error('selectedFlow must be a UUID v4 chatflow id')

Type guard

const isV4 = (s: string): boolean => /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(s)

Prevention

When it happens

Trigger: selectedFlowId is undefined, empty, a display name string instead of an id, or a UUID that is not v4 (v1 or a malformed string).

Common situations: Selecting a flow by name in a custom integration instead of by id; the target chatflow has not been saved yet so it has no id; referencing an older flow whose id predates v4 generation; typo when pasting an id.

Related errors


AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12). Data as JSON: /api/errors/51c9503dfd848a2f. Report an issue: GitHub.