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

  1. Set a non-empty URL on the RequestsDelete node's URL input.
  2. If the URL comes from a variable, verify the upstream node produced a non-empty value.
  3. When constructing the tool in code, pass { url: 'https://...' } in the args.
  4. 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

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


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