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
- Check server logs for the `HTTP Request Error:` line which has the full error including response body.
- Verify method, URL, headers, and body in the node inputs; test the same call with curl/Postman.
- If status is 401/403, fix the credential/header; if 429, add backoff; if 5xx, check the upstream service.
- If no response object, investigate network: DNS, proxy, TLS, firewall.
- 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
- Validate URL with `new URL()` before binding it to the node.
- Provide auth headers/credentials for endpoints that require them.
- Use responseType that matches the API (json vs text) to avoid parse failures.
- Test the endpoint with curl before wiring it into the flow.
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
- Failed to make GET request: ${error instanceof Error ? error
- Failed to make POST request: ${error instanceof Error ? erro
- Failed to make PUT request: ${error instanceof Error ? error
- ${error}
- Error in LLM node: ${error instanceof Error ? error.message
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/ad8c4babcb498927.
Report an issue: GitHub.