{"record":{"id":"3de678a033285eb1","repo":"FlowiseAI/Flowise","slug":"url-is-required-for-get-request","errorCode":null,"errorMessage":"URL is required for GET request","messagePattern":"URL is required for GET request","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/components/nodes/tools/RequestsGet/core.ts","lineNumber":98,"sourceCode":"            schema: schema,\n            baseUrl: '',\n            method: 'GET',\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 GET 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/RequestsGet/core.ts#L80-L116","documentation":"Thrown by RequestsGet_Core._call when this.url is falsy at invocation time. The LangChain-style tool requires a URL to be supplied either via constructor fields or subclass fields before _call runs. Without it the tool has no target and aborts before any network activity.","triggerScenarios":"Instantiating the tool without a `url` field and then calling `_call()` (or letting an agent invoke it). Also triggered when a flow's URL template variable resolves to empty/undefined at runtime.","commonSituations":"Node config in the Flowise canvas left the URL field blank; a credential or variable bound to the URL did not resolve; the tool was constructed programmatically with an empty options object.","solutions":["Provide a non-empty `url` when constructing the tool: `new RequestsGet_Core({ url: 'https://...' })`.","In Flowise, confirm the RequestsGet node has a URL value and that any `${var}` placeholder resolves to a real string before execution.","Guard the call site: skip or short-circuit when no URL is configured rather than letting _call throw."],"exampleFix":"// before\nconst tool = new RequestsGet_Core({ headers: {...} } as any)\nawait tool._call({}) // throws: URL is required for GET request\n\n// after\nconst tool = new RequestsGet_Core({ url: 'https://api.example.com/users', headers: {...} } as any)\nawait tool._call({})","handlingStrategy":"validation","validationCode":"function assertGetToolReady(tool: any) {\n  if (!tool.url || typeof tool.url !== 'string' || !/^https?:\\/\\//.test(tool.url)) {\n    throw new Error('RequestsGet requires a valid http(s) url before _call')\n  }\n}\n// call before invocation\nassertGetToolReady(tool)\nawait tool._call({})","typeGuard":"const hasValidUrl = (t: any): t is { url: string } =>\n  typeof t?.url === 'string' && t.url.length > 0 && /^https?:\\/\\//.test(t.url)","tryCatchPattern":"try {\n  assertGetToolReady(tool)\n  const out = await tool._call({})\n} catch (e) {\n  if (/URL is required/.test((e as Error).message)) {\n    // config gap — do not retry, surface to user\n    throw new Error('RequestsGet not configured: set the URL field')\n  }\n  throw e\n}","preventionTips":["Centralize tool construction in a factory that requires `url` as a typed parameter.","In Flowise, mark the URL node field as required so the canvas validates it.","Resolve template variables for the URL before constructing the tool and fail fast on empty."],"tags":["http","get","configuration","validation"],"backgroundTag":null,"analyzedSha":"abe4a8601a058047b350c260676826e21dd14101","analyzedAt":"2026-08-12T16:04:40.823Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}