FlowiseAI/Flowise · error · Error
URL is required for DELETE request
Error message
URL is required for DELETE request
What it means
Thrown by RequestsDelete tool's _call when this.url is falsy at call time. The DELETE tool needs a target URL to invoke secureFetch against; the URL is set at construction from args.url (the node's configured URL input). If it was never configured or resolved empty, the tool cannot proceed.
Source
Thrown at packages/components/nodes/tools/RequestsDelete/core.ts:98
schema: schema,
baseUrl: '',
method: 'DELETE',
headers: args?.headers || {}
}
super(toolInput)
this.url = args?.url ?? this.url
this.headers = args?.headers ?? this.headers
this.maxOutputLength = args?.maxOutputLength ?? this.maxOutputLength
this.queryParamsSchema = args?.queryParamsSchema
}
/** @ignore */
async _call(arg: any): Promise<string> {
const params = { ...arg }
const inputUrl = this.url
if (!inputUrl) {
throw new Error('URL is required for DELETE request')
}
const requestHeaders = {
...(params.headers || {}),
...this.headers
}
// Process URL and query parameters based on schema
let finalUrl = inputUrl
const queryParams: Record<string, string> = {}
if (this.queryParamsSchema && params.queryParams && Object.keys(params.queryParams).length > 0) {
try {
const parsedSchema = parseJsonBody(this.queryParamsSchema)
const pathParams: Array<{ key: string; value: string }> = []
Object.entries(params.queryParams).forEach(([key, value]) => {
const paramConfig = parsedSchema[key]View on GitHub (pinned to abe4a8601a)
Solutions
- Set a non-empty URL on the RequestsDelete node's URL input.
- If the URL comes from a variable, verify the upstream node produced a non-empty value.
- When constructing the tool in code, pass { url: 'https://...' } in the args.
- Use the tool's queryParamsSchema for dynamic path/query params rather than leaving the base URL blank.
Example fix
// before
const tool = new RequestsDelete({ name: 'del' })
// after
const tool = new RequestsDelete({ name: 'del', description: '...', url: 'https://api.example.com/item/123' }) Defensive patterns
Strategy: validation
Validate before calling
function hasValidUrl(args: any): boolean {
return Boolean(args && typeof args.url === 'string' && args.url.length > 0)
} Type guard
function hasDeleteUrl(a: unknown): a is { url: string } {
return typeof a === 'object' && a !== null && typeof (a as any).url === 'string' && (a as any).url.length > 0
} Try / catch
try {
await tool.call(arg)
} catch (e) {
if (e instanceof Error && e.message === 'URL is required for DELETE request') {
// prompt for / bind the URL input
} else throw e
} Prevention
- Always set the URL input on the RequestsDelete node.
- Verify upstream variable substitutions resolve non-empty.
- When constructing programmatically, pass { url } in args.
When it happens
Trigger: The RequestsDelete node's 'URL' input was left blank; the URL was bound to an upstream variable that resolved to empty; the tool was constructed programmatically without passing url in the args.
Common situations: User forgot to fill the URL field on the node; a variable substitution like {{variable}} did not resolve; the tool was instantiated directly in code without the url option.
Related errors
- URL is required for GET request
- URL is required for POST request
- URL is required for PUT request
- Invalid headers: expected an object
- Invalid headers: too many entries (max ${MAX_HEADERS})
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/88fb14e3b160df0d.
Report an issue: GitHub.