searxng/searxng · error · SearxEngineAPIException

Yandex Search API: no 'rawData' in response

Error message

Yandex Search API: no 'rawData' in response

What it means

Error "Yandex Search API: no 'rawData' in response" thrown in searxng/searxng.

Source

Thrown at searx/engines/yandex_api.py:179

    params["method"] = "POST"
    params["url"] = base_url
    params["headers"]["Authorization"] = f"Api-Key {api_key}"
    params["headers"]["Content-Type"] = "application/json"
    params["json"] = body


def _raw_xml(resp: "SXNG_Response") -> bytes:
    """Extract and Base64-decode the XML payload out of the JSON envelope.

    The synchronous ``/v2/web/search`` endpoint returns ``{"rawData":
    "<base64>"}`` on success; HTTP errors are raised upstream via
    ``raise_for_httperror``.
    """
    data: dict[str, t.Any] = resp.json()

    raw_data = data.get("rawData")
    if raw_data is None:
        raise SearxEngineAPIException("Yandex Search API: no 'rawData' in response")

    return b64decode(raw_data)


def response(resp: "SXNG_Response") -> EngineResults:
    res = EngineResults()

    dom = etree.fromstring(_raw_xml(resp))  # pylint: disable=c-extension-no-member

    # An <error> inside <response> signals an application error.  Code 15 simply
    # means "nothing was found" and must not raise.
    error = dom.find(".//response/error")
    if error is not None:
        if error.get("code") == "15":
            return res
        raise SearxEngineAPIException(f"Yandex Search API error {error.get('code')}: {error.text}")

    for doc in dom.iterfind(".//doc"):

View on GitHub (pinned to 9fea41204f)

When it happens

Trigger: Thrown at searx/engines/yandex_api.py:179 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of searxng/searxng@9fea41204f (2026-08-27). Data as JSON: /api/errors/8da050aefff84506. Report an issue: GitHub.