FlowiseAI/Flowise · error · Error

App name is required. Please select an app.

Error message

App name is required. Please select an app.

What it means

Thrown in Composio_Tools.init when appName is falsy. The tool calls toolset.client.apps.get({ appKey: appName.toLowerCase() }) right after, so appName is both the selection and the lookup key — without it the Composio client cannot resolve which integration to load tools for.

Source

Thrown at packages/components/nodes/tools/Composio/Composio.ts:257

            }
            throw new Error('API Key Required')
        }

        const _actions = nodeData.inputs?.actions
        let actions = []
        if (_actions) {
            try {
                actions = typeof _actions === 'string' ? JSON.parse(_actions) : _actions
            } catch (error) {
                console.error('Error parsing actions:', error)
            }
        }

        const toolset = new LangchainToolSet({ apiKey: composioApiKey })
        const appName = nodeData.inputs?.appName as string

        if (!appName) {
            throw new Error('App name is required. Please select an app.')
        }

        const appInfo = await toolset.client.apps.get({ appKey: appName.toLowerCase() })
        const requiresAuth = (appInfo as any)?.no_auth !== true

        if (!requiresAuth) {
            const tools = await toolset.getTools({ actions })
            return tools
        }

        const selectedConnectionId = nodeData.inputs?.connectedAccountId as string

        if (!selectedConnectionId) {
            throw new Error(`Please select a connected account for ${appName}`)
        }

        const activeConnection = await toolset.client.connectedAccounts.get({ connectedAccountId: selectedConnectionId })

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Ensure a valid Composio API key is configured first so the app dropdown populates.
  2. Select an explicit app (e.g. 'github', 'slack') from the dropdown.
  3. If setting appName programmatically, pass the lower-cased appKey exactly as Composio expects.

Example fix

// before
const appName = nodeData.inputs?.appName as string
if (!appName) {
  throw new Error('App name is required. Please select an app.')
}
// after
const appName = (nodeData.inputs?.appName as string)?.trim()
if (!appName) {
  throw new Error('App name is required. Please select an app from the dropdown (it populates after a valid Composio API key is set).')
}
Defensive patterns

Strategy: validation

Validate before calling

function assertComposioApp(appName: string | undefined): asserts appName is string {
  if (!appName || !appName.trim()) {
    throw new Error('App name is required. Select an app from the dropdown (it populates after a valid Composio API key is set).')
  }
}

Type guard

function isComposioAppKey(v: unknown): v is string {
  return typeof v === 'string' && /^[a-z0-9-_]+$/i.test(v) && v.length > 0
}

Prevention

When it happens

Trigger: The user did not pick an app from the dropdown (which only populates after a valid API key is supplied, see error 358); appName was cleared when the API key was missing (the init resets appName to undefined); flow JSON edited to remove appName.

Common situations: Adding a Composio node without first configuring the API key, so the app dropdown never loaded; switching workspaces where the previously selected app is unavailable.

Related errors


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