Skip to main content
Problem type: https://docs.nordicfinancialnews.com/problems/semantic-unavailable
The API returns this problem type with HTTP 503 when a search using mode=semantic cannot turn your query into an embedding. Either the upstream embedding call failed, or it did not finish inside the 3 second in-request timeout. Only requests that ask for mode=semantic can return this. Keyword search is unaffected and stays available throughout.

Example response

Response headers

Why you get an error instead of keyword results

When semantic matching is unavailable, the API could quietly rank your results with keyword search instead. It deliberately does not. A silent fallback would return a differently ranked page under an identical request shape, with nothing in the response to say which ranking you received. That is difficult to detect and worse to debug, particularly for an agent that cannot tell the two apart. Failing explicitly means a 200 from a mode=semantic request always contains a genuine semantic result. Choosing keyword ranking is therefore yours to make, not something the API does on your behalf.

How to fix it

Wait the number of seconds in Retry-After and retry the same request. This condition is usually brief.
Python
If it persists past a few retries, drop mode=semantic and use keyword search until it recovers. Make that switch explicit in your own code so you always know which ranking produced the results you are holding.

Retries and the embedding cache

Successful query embeddings are cached for one hour, keyed on the query text after case folding and trimming. A query that embedded successfully within the last hour is normally served from that cache, so it does not re-embed and will not raise this error. A timed-out or failed embedding is not written to that cache, so a retry genuinely re-attempts the call rather than replaying a stored failure.
Last modified on September 7, 2026