FlowiseAI/Flowise · error · Error

No Jira host provided

Error message

No Jira host provided

What it means

Thrown by Jira.init when nodeData.inputs.jiraHost is falsy. The jiraHost is the base URL of the Jira instance (e.g. https://acme.atlassian.net for Cloud or https://jira.example.com for Server/DC) and is used to build all REST endpoints (.../rest/api/<version>/...). Without it, the request URL cannot be constructed, so init aborts before credential resolution.

Source

Thrown at packages/components/nodes/tools/Jira/Jira.ts:398

                name: 'userMaxResults',
                type: 'number',
                default: 50,
                description: 'Maximum number of users to return',
                show: {
                    userActions: ['searchUsers']
                },
                additionalParams: true,
                optional: true
            }
        ]
    }

    async init(nodeData: INodeData, _: string, options: ICommonObject): Promise<any> {
        let credentialData = await getCredentialData(nodeData.credential ?? '', options)
        const jiraHost = nodeData.inputs?.jiraHost as string

        if (!jiraHost) {
            throw new Error('No Jira host provided')
        }

        const bearerToken = getCredentialParam('bearerToken', credentialData, nodeData)
        const username = getCredentialParam('username', credentialData, nodeData)
        const accessToken = getCredentialParam('accessToken', credentialData, nodeData)

        let authType: 'basic' | 'bearer'
        if (bearerToken) {
            authType = 'bearer'
        } else if (username && accessToken) {
            authType = 'basic'
        } else {
            throw new Error('Invalid credentials: provide either Bearer Token or Username + Access Token')
        }

        // Read SSL certificate from tool inputs if provided
        let sslCertificate: string | undefined
        const caFileBase64 = nodeData.inputs?.caFile as string

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Set the Jira Host input to the full base URL (https://<tenant>.atlassian.net for Cloud, https://jira.<corp>.com for Server/DC) with no trailing slash.
  2. If wiring from a variable, confirm the variable resolves at runtime (check $vars in the workspace).
  3. Validate the URL shape before save — must include the scheme.
  4. Distinguish from credentials: jiraHost is a plain node input, not stored in the credential record.

Example fix

// before
nodeData.inputs = { jiraHost: '' }
// after
nodeData.inputs = { jiraHost: 'https://acme.atlassian.net' }
Defensive patterns

Strategy: validation

Validate before calling

function assertJiraHost(host: unknown): asserts host is string {
  if (typeof host !== 'string' || !/^https?:\/\/.+/.test(host.trim())) {
    throw new Error('jiraHost must be a full URL like https://acme.atlassian.net')
  }
}

Type guard

function isJiraHostUrl(s: unknown): s is string {
  return typeof s === 'string' && /^https?:\/\/[\w.-]+\.(atlassian\.net|[\w.-]+)(:\d+)?(\/.*)?$/.test(s.trim())
}

Prevention

When it happens

Trigger: The Jira Host input field on the node is empty; the value is wired from a variable that resolves to undefined; the host was entered with a typo that whitespace-trims to empty. Unlike credentials, jiraHost lives in node inputs (not the credential), so a correct credential does not satisfy it.

Common situations: Configuring the Jira node with a credential but forgetting the Host input; a flow template that expects jiraHost as a $var but the variable isn't defined for this workspace; copy-paste that dropped the field.

Related errors


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