Budibase/budibase · error

Parallel error: ${response.status} ${response.statusText}

Error message

Parallel error: ${response.status} ${response.statusText}

What it means

createParallelTool's fetch wrapper throws this when the Parallel search API responds with a non-OK HTTP status, including status and statusText. It signals upstream Parallel API failures as tool errors.

Source

Thrown at packages/server/src/ai/tools/search/parallel.ts:50

    inputSchema: parallelSearchParams,
    execute: async args => {
      const response = await fetch("https://api.parallel.ai/v1beta/search", {
        method: "POST",
        headers: {
          "x-api-key": apiKey,
          "parallel-beta": "search-extract-2025-10-10",
          "Content-Type": "application/json",
        },
        body: JSON.stringify({
          objective: args.objective,
          search_queries: args.search_queries,
          max_results: args.max_results,
          excerpts: { max_chars_per_result: 2000 },
        }),
      })

      if (!response.ok) {
        throw new Error(
          `Parallel error: ${response.status} ${response.statusText}`
        )
      }
      return response.json()
    },
  }),
})

View on GitHub (pinned to a81a902e9a)

Solutions

  1. Verify the Parallel API key is set and valid
  2. Check request payload against the Parallel API schema
  3. Add retry with backoff for 429/5xx
  4. Inspect Parallel response body/logs for the precise error

Example fix

// before
throw new Error(`Parallel error: 401 Unauthorized`)
// after
// configure valid credentials before invoking
headers: { Authorization: `Bearer ${process.env.PARALLEL_API_KEY}` }
Defensive patterns

Strategy: retry

Validate before calling

if (!process.env.PARALLEL_API_KEY) throw new Error("PARALLEL_API_KEY not configured")

Try / catch

try { await parallelTool.run(args) } catch (e) { if (e.message.startsWith("Parallel error:")) { const status = parseInt(e.message); if (status === 429 || status >= 500) await retryWithBackoff(); else surfaceToAgent(e) } }

Prevention

When it happens

Trigger: Parallel API returns 4xx/5xx — authentication failure (401/403), invalid request object (400), quota/rate limits (429), or 5xx server errors.

Common situations: Missing/invalid PARALLEL_API_KEY; malformed search objective/params; plan tier limits exceeded; Parallel service outage.

Related errors


AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29). Data as JSON: /api/errors/b59dc8fdc7913eaa. Report an issue: GitHub.