FlowiseAI/Flowise · error · Error

${errorMessage}

Error message

${errorMessage}

What it means

Thrown from HTTP_Agentflow.run()'s catch block when an HTTP request inside an agentflow fails. Unlike error 20, the message is normalized: `errorMessage` is derived from `error.response?.data?.message || error.response?.data?.error || error.message || 'An error occurred during the HTTP request'`. The built errorResponse (with status/headers/data) is logged but not surfaced — only the string message is re-thrown, so callers lose the HTTP status code.

Source

Thrown at packages/components/nodes/agentflow/HTTP/HTTP.ts:375

                        responseType
                    }
                },
                error: {
                    name: error.name || 'Error',
                    message: errorMessage
                },
                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(errorMessage)
        }
    }
}

module.exports = { nodeClass: HTTP_Agentflow }

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Check server logs for the `HTTP Request Error:` line which has the full error including response body.
  2. Verify method, URL, headers, and body in the node inputs; test the same call with curl/Postman.
  3. If status is 401/403, fix the credential/header; if 429, add backoff; if 5xx, check the upstream service.
  4. If no response object, investigate network: DNS, proxy, TLS, firewall.
  5. Patch the throw to include the status code in the message so callers can branch on it.

Example fix

// before
            throw new Error(errorMessage)
// after
            const status = error.response?.status
            const err = new Error(status ? `HTTP ${status}: ${errorMessage}` : errorMessage)
            ;(err as any).status = status
            throw err
Defensive patterns

Strategy: validation

Validate before calling

// Before invoking HTTP_Agentflow, validate the request shape
const url = nodeData.inputs?.httpUrl
try { new URL(url) } catch { throw new Error(`Invalid HTTP url: ${url}`) }
if (!nodeData.inputs?.httpMethod) throw new Error('HTTP method is required')

Type guard

const isAxiosLikeError = (e: unknown): e is { response?: { status: number; data: any } } =>
  typeof e === 'object' && e !== null && 'response' in e

Try / catch

try {
  const out = await httpNode.run(nodeData, input, options)
} catch (e) {
  const msg = (e as Error).message
  if (/^(401|403)/.test(msg)) handleAuth()
  else if (/^429/.test(msg)) backoff()
  else throw e
}

Prevention

When it happens

Trigger: The fetch/axios call returns non-2xx (response.data present), the request never reaches the server (network/DNS failure, so error.response is undefined and error.message is used), or the request throws before sending (invalid URL, SSL error).

Common situations: Wrong base URL or path; missing/incorrect auth header causing 401/403; target API down or rate-limiting (429); self-signed cert in dev; typo in JSON body causing a 400.

Related errors


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