{"record":{"id":"65cc6812407fe806","repo":"OpenBB-finance/OpenBB","slug":"no-results-were-found-query-symbol","errorCode":null,"errorMessage":"No results were found. -> {query.symbol}","messagePattern":"No results were found\\. -> (.+?)","errorType":"exception","errorClass":"EmptyDataError","httpStatus":null,"severity":"warning","filePath":"openbb_platform/providers/intrinio/openbb_intrinio/models/forward_ebitda_estimates.py","lineNumber":130,"sourceCode":"            url = f\"{BASE_URL}&identifier={symbol}\"\n            url = url + f\"&{query_str}\" if query_str else url\n            data = await amake_request(\n                url, response_callback=response_callback, **kwargs\n            )\n            consensus = (\n                data.get(\"ebitda_consensus\")\n                if isinstance(data, dict) and \"ebitda_consensus\" in data\n                else []\n            )\n            if not data or not consensus:\n                warn(f\"Symbol Error: No data found for {symbol}\")\n            if consensus:\n                results.extend(consensus)\n\n        if symbols:\n            await asyncio.gather(*[get_one(symbol) for symbol in symbols])\n            if not results:\n                raise EmptyDataError(f\"No results were found. -> {query.symbol}\")\n            return results\n\n        async def fetch_callback(response, session):\n            \"\"\"Use callback for pagination.\"\"\"\n            data = await response.json()\n            error = data.get(\"error\", None)\n            if error:\n                message = data.get(\"message\", \"\")\n                if \"api key\" in message.lower():\n                    raise UnauthorizedError(\n                        f\"Unauthorized Intrinio request -> {message}\"\n                    )\n                raise OpenBBError(f\"Error: {error} -> {message}\")\n\n            estimates = data.get(\"ebitda_consensus\", [])  # type: ignore\n            if estimates and len(estimates) > 0:\n                results.extend(estimates)\n                while data.get(\"next_page\"):  # type: ignore","sourceCodeStart":112,"sourceCodeEnd":148,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/intrinio/openbb_intrinio/models/forward_ebitda_estimates.py#L112-L148","documentation":"EmptyDataError raised in IntrinioForwardEbitdaEstimatesFetcher on the multi-symbol path: after asyncio.gather of get_one(symbol) for each symbol, none appended to 'results' (each miss only emitted a warning 'Symbol Error: No data found for <symbol>'). The message lists the full requested symbol string.","triggerScenarios":"Requesting forward EBITDA consensus for symbols that Intrinio's analyst-estimates product has no coverage for — typical for small/micro caps, non-US listings, or tickers where 'ebitda_consensus' is absent from the response dict. Only fires when ALL requested symbols missed (per-symbol misses just warn).","commonSituations":"Screeners feeding micro-cap tickers into estimates endpoints; tickers formatted for other vendors (dots/suffixes) that Intrinio doesn't resolve; warnings suppressed so the individual 'Symbol Error' notices were never seen.","solutions":["Check warnings output — each missed symbol is individually named there","Use symbols with analyst coverage (large caps like AAPL, MSFT) — verify coverage via obb.equity.estimates endpoints or Intrinio's docs","Catch EmptyDataError and mark these symbols as 'no coverage' in your pipeline instead of retrying"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"LARGE_CAPS_WITH_COVERAGE = {\"AAPL\", \"MSFT\", \"GOOGL\"}  # seed empirically\n\ndef has_estimates_coverage(symbol: str) -> bool:\n    return symbol.upper() in LARGE_CAPS_WITH_COVERAGE","typeGuard":"from openbb_core.provider.utils.errors import EmptyDataError","tryCatchPattern":"import warnings\nfrom openbb_core.provider.utils.errors import EmptyDataError\n\nwith warnings.catch_warnings(record=True) as caught:\n    warnings.simplefilter(\"always\")\n    try:\n        res = await obb.equity.estimates.ebitda(provider=\"intrinio\", symbol=syms)\n    except EmptyDataError:\n        missing = [str(w.message) for w in caught]  # names each uncovered symbol\n        mark_uncovered(missing)","preventionTips":["Record warnings — per-symbol misses are only warnings","Track which symbols lack analyst coverage instead of retrying them","Batch with at least one known-covered symbol when testing"],"tags":["estimates","ebitda","intrinio","empty-data","analyst-coverage"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}