FlowiseAI/Flowise · error · Error

Pipedream Project ID is required in credentials

Error message

Pipedream Project ID is required in credentials

What it means

Thrown when the Pipedream credential has no projectId. The projectId is sent as the x-pd-project-id header to the Pipedream MCP server and is required to scope tool access, so getTools rejects early if it is missing.

Source

Thrown at packages/components/nodes/tools/MCP/Pipedream/PipedreamMCP.ts:300

            externalUserId = 'flowise_preview_user'
        }

        externalUserId = externalUserId.replace(/<[^>]*>/g, '').trim()
        if (!externalUserId) {
            throw new Error('Pipedream user ID is required')
        }

        const SAFE_USER_ID = /^[a-zA-Z0-9._@+-]{1,250}$/
        if (!SAFE_USER_ID.test(externalUserId.trim())) {
            throw new Error('User ID contains invalid characters. Allowed: letters, digits, . _ @ + -')
        }

        const credentialData = await getCredentialData(nodeData.credential ?? '', options)
        const projectId = getCredentialParam('projectId', credentialData, nodeData)
        const oauthScopes = getCredentialParam('oauthScopes', credentialData, nodeData) as string | 'connect:*'

        if (!projectId) {
            throw new Error('Pipedream Project ID is required in credentials')
        }

        const clientId = getCredentialParam('clientId', credentialData, nodeData)
        const clientSecret = getCredentialParam('clientSecret', credentialData, nodeData)

        if (!clientId || !clientSecret) {
            throw new Error('Pipedream Client ID and Client Secret are required in credentials')
        }
        const accessToken = await this.fetchAccessToken(clientId, clientSecret, oauthScopes)

        const environment = (nodeData.inputs?.environment as string) || 'development'
        const toolMode = (nodeData.inputs?.toolMode as string) || 'tools-only'

        const serverParams = {
            url: 'https://remote.mcp.pipedream.net',
            headers: {
                Authorization: `Bearer ${accessToken}`,
                'x-pd-project-id': projectId,

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Open the bound Pipedream credential and enter the Project ID from the Pipedream dashboard (Workspace > Projects).
  2. Confirm the projectId corresponds to the workspace/environment you intend to use.
  3. Save the credential and re-run the node.
Defensive patterns

Strategy: validation

Validate before calling

const projectId = getCredentialParam('projectId', credentialData, nodeData)
if (!projectId) {
    throw new Error('Pipedream Project ID is required')
}

Type guard

function hasProjectId(cred: unknown): cred is { projectId: string } {
    return typeof cred === 'object' && cred !== null
        && typeof (cred as any).projectId === 'string'
        && (cred as any).projectId.trim().length > 0
}

Try / catch

try { await pipedream.getTools(nodeData, options) }
catch (e) { if (e instanceof Error && e.message === 'Pipedream Project ID is required in credentials') { /* bind projectId */ } }

Prevention

When it happens

Trigger: The selected Pipedream credential exists but its 'projectId' field is empty; the credential component was filled partially; projectId was cleared during an edit.

Common situations: User created the credential but skipped projectId; copied an old credential schema without projectId; the field is mislabeled or the value was not saved.

Related errors


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