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

  1. Provide a non-empty `url` when constructing the tool: `new RequestsGet_Core({ url: 'https://...' })`.
  2. In Flowise, confirm the RequestsGet node has a URL value and that any `${var}` placeholder resolves to a real string before execution.
  3. 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

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


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