{"record":{"id":"88fb14e3b160df0d","repo":"FlowiseAI/Flowise","slug":"url-is-required-for-delete-request","errorCode":null,"errorMessage":"URL is required for DELETE request","messagePattern":"URL is required for DELETE request","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/components/nodes/tools/RequestsDelete/core.ts","lineNumber":98,"sourceCode":"            schema: schema,\n            baseUrl: '',\n            method: 'DELETE',\n            headers: args?.headers || {}\n        }\n        super(toolInput)\n        this.url = args?.url ?? this.url\n        this.headers = args?.headers ?? this.headers\n        this.maxOutputLength = args?.maxOutputLength ?? this.maxOutputLength\n        this.queryParamsSchema = args?.queryParamsSchema\n    }\n\n    /** @ignore */\n    async _call(arg: any): Promise<string> {\n        const params = { ...arg }\n\n        const inputUrl = this.url\n        if (!inputUrl) {\n            throw new Error('URL is required for DELETE request')\n        }\n\n        const requestHeaders = {\n            ...(params.headers || {}),\n            ...this.headers\n        }\n\n        // Process URL and query parameters based on schema\n        let finalUrl = inputUrl\n        const queryParams: Record<string, string> = {}\n\n        if (this.queryParamsSchema && params.queryParams && Object.keys(params.queryParams).length > 0) {\n            try {\n                const parsedSchema = parseJsonBody(this.queryParamsSchema)\n                const pathParams: Array<{ key: string; value: string }> = []\n\n                Object.entries(params.queryParams).forEach(([key, value]) => {\n                    const paramConfig = parsedSchema[key]","sourceCodeStart":80,"sourceCodeEnd":116,"githubUrl":"https://github.com/FlowiseAI/Flowise/blob/abe4a8601a058047b350c260676826e21dd14101/packages/components/nodes/tools/RequestsDelete/core.ts#L80-L116","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before\nconst tool = new RequestsDelete({ name: 'del' })\n// after\nconst tool = new RequestsDelete({ name: 'del', description: '...', url: 'https://api.example.com/item/123' })","handlingStrategy":"validation","validationCode":"function hasValidUrl(args: any): boolean {\n  return Boolean(args && typeof args.url === 'string' && args.url.length > 0)\n}","typeGuard":"function hasDeleteUrl(a: unknown): a is { url: string } {\n  return typeof a === 'object' && a !== null && typeof (a as any).url === 'string' && (a as any).url.length > 0\n}","tryCatchPattern":"try {\n  await tool.call(arg)\n} catch (e) {\n  if (e instanceof Error && e.message === 'URL is required for DELETE request') {\n    // prompt for / bind the URL input\n  } else throw e\n}","preventionTips":["Always set the URL input on the RequestsDelete node.","Verify upstream variable substitutions resolve non-empty.","When constructing programmatically, pass { url } in args."],"tags":["http","requests","validation","missing-url"],"backgroundTag":null,"analyzedSha":"abe4a8601a058047b350c260676826e21dd14101","analyzedAt":"2026-08-12T16:04:40.823Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}