FlowiseAI/Flowise · error · Error
URL is required for GET request
Error message
URL is required for GET request
What it means
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.
Source
Thrown at packages/components/nodes/tools/RequestsGet/core.ts:98
schema: schema,
baseUrl: '',
method: 'GET',
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 GET 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
- 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.
Example fix
// before
const tool = new RequestsGet_Core({ headers: {...} } as any)
await tool._call({}) // throws: URL is required for GET request
// after
const tool = new RequestsGet_Core({ url: 'https://api.example.com/users', headers: {...} } as any)
await tool._call({}) Defensive patterns
Strategy: validation
Validate before calling
function assertGetToolReady(tool: any) {
if (!tool.url || typeof tool.url !== 'string' || !/^https?:\/\//.test(tool.url)) {
throw new Error('RequestsGet requires a valid http(s) url before _call')
}
}
// call before invocation
assertGetToolReady(tool)
await tool._call({}) Type guard
const hasValidUrl = (t: any): t is { url: string } =>
typeof t?.url === 'string' && t.url.length > 0 && /^https?:\/\//.test(t.url) Try / catch
try {
assertGetToolReady(tool)
const out = await tool._call({})
} catch (e) {
if (/URL is required/.test((e as Error).message)) {
// config gap — do not retry, surface to user
throw new Error('RequestsGet not configured: set the URL field')
}
throw e
} Prevention
- 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.
When it happens
Trigger: 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.
Common situations: 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.
Related errors
- URL is required for POST request
- URL is required for PUT request
- Model is required
- Model is required
- Scenarios are required
AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12).
Data as JSON: /api/errors/3de678a033285eb1.
Report an issue: GitHub.