deepseek-ai/deepseek-harness · error · WebError
WEB_PROVIDER_ERROR
WEB_PROVIDER_ERROR
Error message
Exa search request failed: ${String(error)} What it means
Error "Exa search request failed: ${String(error)}" thrown in deepseek-ai/deepseek-harness.
Source
Thrown at packages/web/web-search-exa/src/provider.ts:120
method: 'POST',
redirect: 'error',
headers: {
'authorization': `Bearer ${this.options.apiKey}`,
'content-type': 'application/json',
'accept': 'application/json',
'user-agent': USER_AGENT,
},
body: JSON.stringify({
query: request.query,
type: this.options.searchType,
contents: { highlights: { highlightsPerUrl: this.options.highlightsPerResult } },
...numResults !== undefined ? { numResults } : {},
}),
...signal !== undefined ? { signal } : {},
})
} catch (error: unknown) {
if (isAbortError(error)) throw new WebError('Exa search aborted', 'WEB_ABORTED', { cause: error })
throw new WebError(`Exa search request failed: ${String(error)}`, 'WEB_PROVIDER_ERROR', { cause: error })
}
if (!response.ok) {
const status = response.status
let message = `Exa API error (HTTP ${status})`
try {
const parsed = await response.json() as ExaError
const detail = parsed.error ?? parsed.message
if (detail !== undefined && detail.length > 0) message = detail
} catch (error: unknown) {
// An abort fired mid-body must surface as WEB_ABORTED, not be swallowed
// into a generic HTTP-error message — cancellation is not a provider
// error (the seam's cancellation contract).
if (isAbortError(error)) throw new WebError('Exa search aborted', 'WEB_ABORTED', { cause: error })
// Otherwise: the HTTP status is already captured in `message` above; a
// malformed/non-JSON error body (normal for gateway 5xx/429s) can only
// cost a richer provider message, never the real error.
}View on GitHub (pinned to b150a551b8)
Solutions
- Inspect the request error in the message; check the Exa API key, quota, and network connectivity.
When it happens
Trigger: Thrown at packages/web/web-search-exa/src/provider.ts:120 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of deepseek-ai/deepseek-harness@b150a551b8 (2026-08-24).
Data as JSON: /api/errors/ac330eb4d962f7d6.
Report an issue: GitHub.