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
- Verify the Parallel API key is set and valid
- Check request payload against the Parallel API schema
- Add retry with backoff for 429/5xx
- 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
- Validate PARALLEL_API_KEY at startup
- Validate request payloads against the Parallel schema
- Add exponential backoff for transient statuses
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
- Exa error: ${response.status} ${response.statusText} - ${err
- OIDC Config contents invalid
- Unexpected response when fetching openid-configuration: ${re
- unexpected response ${response.statusText}
- Unexpected response ${response.statusText}
AI-assisted analysis of Budibase/budibase@a81a902e9a (2026-08-29).
Data as JSON: /api/errors/b59dc8fdc7913eaa.
Report an issue: GitHub.