FlowiseAI/Flowise · error · Error
Failed to make DELETE request: ${error instanceof Error ? er
Error message
Failed to make DELETE request: ${error instanceof Error ? error.message : 'Unknown error'} What it means
Thrown by RequestsDelete tool's _call inside its catch block, wrapping any error that escaped the inner try (including the explicit HTTP Error throw, or a secureFetch/network failure). The message extracts the underlying Error.message, falling back to 'Unknown error' for non-Error throws. Because the HTTP Error from error 478 is re-thrown here, this is the outermost error a caller sees for any DELETE failure.
Source
Thrown at packages/components/nodes/tools/RequestsDelete/core.ts:182
url.searchParams.append(key, String(value))
})
finalUrl = url.toString()
}
try {
const res = await secureFetch(finalUrl, {
method: 'DELETE',
headers: requestHeaders
})
if (!res.ok) {
throw new Error(`HTTP Error ${res.status}: ${res.statusText}`)
}
const text = await res.text()
return text.slice(0, this.maxOutputLength)
} catch (error) {
throw new Error(`Failed to make DELETE request: ${error instanceof Error ? error.message : 'Unknown error'}`)
}
}
}
View on GitHub (pinned to abe4a8601a)
Solutions
- Read the wrapped message: if it starts with 'HTTP Error', treat as a status-code problem (see error 478 fixes); otherwise treat as a network/connectivity problem.
- For network errors, verify DNS, connectivity, proxy settings, and the URL scheme.
- Reconfigure secureFetch/httpSecurity allowlists if the target host is blocked.
- For TLS errors, validate the certificate and CA chain on the target host.
Example fix
// before: opaque failure
try { await tool._call({}) } catch (e) { console.log(e.message) }
// after: distinguish network vs HTTP
try {
await tool._call({})
} catch (e) {
if (e.message.startsWith('HTTP Error')) {
// server-side status code problem
} else {
// network / connectivity problem
}
} Defensive patterns
Strategy: retry
Validate before calling
function isRetryableNetworkError(message: string): boolean {
if (message.startsWith('HTTP Error')) {
const m = message.match(/HTTP Error (\d+)/)
const s = m ? Number(m[1]) : 0
return s === 429 || s >= 500
}
return true // pure network/TLS failure is typically transient
} Type guard
null
Try / catch
async function deleteWithRetry(tool: any, arg: any, retries = 3) {
for (let i = 0; i <= retries; i++) {
try {
return await tool.call(arg)
} catch (e) {
const msg = e instanceof Error ? e.message : ''
const isHttp = msg.startsWith('HTTP Error')
if (i === retries) throw e
if (isHttp && !isRetryableNetworkError(msg)) throw e // 4xx non-retryable
await new Promise(r => setTimeout(r, 2 ** i * 500))
}
}
} Prevention
- Differentiate HTTP-status failures from network failures by inspecting the message prefix.
- Retry only idempotent deletes on transient 5xx/429 or network errors.
- Validate the URL scheme/host to avoid fetch TypeErrors.
- Confirm proxy/egress allowlist includes the target host.
When it happens
Trigger: A network failure (DNS, connection refused, TLS error, timeout) from secureFetch; the inner 'HTTP Error ...' throw being caught and re-wrapped; a non-Error exception (rare) thrown inside the try.
Common situations: Offline or restricted network egress; misconfigured proxy; invalid URL causing a fetch TypeError; TLS certificate problems; the wrapping obscures the original status code from error 478 when network-level failures occur.
Related errors
- ${errorMessage}
- HTTP error! status: ${response.status}
- Failed to fetch ${url}: ${error}
- Failed to post ${url}: ${error}
- Azure Rerank API call failed: ${error.message}
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/f7e65c138fda774f.
Report an issue: GitHub.