{"record":{"id":"f2464bacb21d0153","repo":"OpenBB-finance/OpenBB","slug":"unexpected-outcome-all-requests-were-returned-e","errorCode":null,"errorMessage":"Unexpected outcome -> All requests were returned empty.","messagePattern":"Unexpected outcome -> All requests were returned empty\\.","errorType":"exception","errorClass":"OpenBBError","httpStatus":null,"severity":"error","filePath":"openbb_platform/providers/econdb/openbb_econdb/models/yield_curve.py","lineNumber":150,"sourceCode":"            data = response.get(\"results\")  # type: ignore\n            if not data:\n                messages.append(f\"The response for, {country}, was returned empty.\")\n                return\n            results[country] = data\n\n            return\n\n        _countries = query.country.split(\",\")\n\n        tasks = [asyncio.create_task(get_one_country(c)) for c in _countries]\n        await asyncio.gather(*tasks)\n\n        if not results and messages:\n            msg_str = \"\\n\".join(messages)\n            raise OpenBBError(msg_str)\n\n        if not results and not messages:\n            raise OpenBBError(\"Unexpected outcome -> All requests were returned empty.\")\n\n        if results and messages:\n            for message in messages:\n                warn(message)\n\n        return results\n\n    @staticmethod\n    def transform_data(\n        query: EconDbYieldCurveQueryParams,\n        data: dict,\n        **kwargs: Any,\n    ) -> AnnotatedResult[list[EconDbYieldCurveData]]:\n        \"\"\"Transform the data.\"\"\"\n        # pylint: disable=import-outside-toplevel\n        from numpy import nan\n        from pandas import Categorical, DataFrame, DatetimeIndex\n","sourceCodeStart":132,"sourceCodeEnd":168,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/econdb/openbb_econdb/models/yield_curve.py#L132-L168","documentation":"Defensive OpenBBError in EconDbYieldCurveFetcher.aextract_data for the state where all per-country tasks completed yet neither the results dict nor the messages list is populated. In practice it is nearly unreachable: a falsy response or empty 'results' always appends a message first. Hitting it indicates the task set was effectively empty or control flow changed (e.g. a provider regression), not a data condition.","triggerScenarios":"Theoretically: query.country splitting into no processable entries, or a future code path where get_one_country returns without touching results/messages. Real occurrences usually mean a bug in the provider version in use.","commonSituations":"Edge-case inputs (empty country string behavior); mismatched provider/core versions after a partial upgrade.","solutions":["Ensure a valid country is supplied (one accepted by the validator).","Upgrade openbb-econdb and openbb-core together to matching versions.","Re-run with a single known-good country; if reproducible, file a provider issue with the exact parameters."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"countries = [c for c in query.country.split(',') if c]\nif not countries:\n    raise ValueError('country parameter is empty')","typeGuard":null,"tryCatchPattern":"from openbb_core.app.model.obbject import OpenBBError\ntry:\n    res = obb.economy.yield_curve(provider='econdb', country='united_states')\nexcept OpenBBError as e:\n    if 'Unexpected outcome' in str(e):\n        logger.error('provider invariant violated - upgrade openbb-econdb/openbb-core together')\n    raise","preventionTips":["Never pass an empty/blank country string.","Keep openbb-econdb and openbb-core versions in sync.","Report reproducible occurrences - this path indicates a bug."],"tags":["yield-curve","econdb","defensive","unreachable"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}