{"record":{"id":"ecab371adf71e3a6","repo":"OpenBB-finance/OpenBB","slug":"no-results-were-found-with-the-query-supplied-ecab37","errorCode":null,"errorMessage":"No results were found with the query supplied. -> {query.query} Hint: Names and descriptions are not searchable from Intrinio, try 3-letter symbols.","messagePattern":"No results were found with the query supplied\\. -> (.+?) Hint: Names and descriptions are not searchable from Intrinio, try 3-letter symbols\\.","errorType":"exception","errorClass":"EmptyDataError","httpStatus":null,"severity":"warning","filePath":"openbb_platform/providers/intrinio/openbb_intrinio/models/currency_pairs.py","lineNumber":83,"sourceCode":"    @staticmethod\n    def transform_data(\n        query: IntrinioCurrencyPairsQueryParams, data: list[dict], **kwargs: Any\n    ) -> list[IntrinioCurrencyPairsData]:\n        \"\"\"Return the transformed data.\"\"\"\n        # pylint: disable=import-outside-toplevel\n        from pandas import DataFrame\n\n        if not data:\n            raise EmptyDataError(\"The request was returned empty.\")\n        df = DataFrame(data)\n        if query.query:\n            df = df[\n                df[\"code\"].str.contains(query.query, case=False)\n                | df[\"base_currency\"].str.contains(query.query, case=False)\n                | df[\"quote_currency\"].str.contains(query.query, case=False)\n            ]\n        if len(df) == 0:\n            raise EmptyDataError(\n                f\"No results were found with the query supplied. -> {query.query}\"\n                + \" Hint: Names and descriptions are not searchable from Intrinio, try 3-letter symbols.\"\n            )\n        return [\n            IntrinioCurrencyPairsData.model_validate(d)\n            for d in df.to_dict(orient=\"records\")\n        ]\n","sourceCodeStart":65,"sourceCodeEnd":91,"githubUrl":"https://github.com/OpenBB-finance/OpenBB/blob/3e071fcc2cd9f891cac6040ae60296dba76dab46/openbb_platform/providers/intrinio/openbb_intrinio/models/currency_pairs.py#L65-L91","documentation":"Raised in IntrinioCurrencyPairsFetcher.transform_data after the full pairs DataFrame was filtered by query.query and zero rows matched. The pandas filter does a case-insensitive substring match on code, base_currency, and quote_currency only — names and descriptions are not in this dataset, hence the hint in the message.","triggerScenarios":"Calling currency.currency_pairs(provider='intrinio', query='...') with a search string that matches no code/base/quote currency: full words like 'dollar' or 'yen', plural forms, or typos. Only 3-letter ISO codes (e.g. 'eur', 'usd', 'jpy') and their combinations match reliably.","commonSituations":"Users wiring a free-text search box straight into the query param; searching by currency name ('Euro') instead of code ('EUR'); assuming the filter searches the display name as some other providers do.","solutions":["Use 3-letter currency codes: query='eur' or query='usd'","Search the base or quote currency code, not the pair word ('eur/usd' works via code substring, 'euro dollar' does not)","Drop the query parameter and filter the returned DataFrame yourself on any column, including names, client-side"],"exampleFix":"# before\ndf = obb.currency.currency_pairs(provider=\"intrinio\", query=\"euro dollar\").to_df()\n\n# after\ndf = obb.currency.currency_pairs(provider=\"intrinio\").to_df()\ndf = df[df[\"base_currency\"].str.contains(\"Euro\", case=False) | df[\"quote_currency\"].str.contains(\"Euro\", case=False)]","handlingStrategy":"validation","validationCode":"import re\n\nCURRENCY_CODE = re.compile(r\"^[A-Za-z]{3}$\")\n\ndef searchable_currency_query(q: str) -> bool:\n    \"\"\"Only 3-letter ISO codes reliably match code/base/quote columns.\"\"\"\n    return bool(CURRENCY_CODE.match(q))","typeGuard":null,"tryCatchPattern":"from openbb_core.provider.utils.errors import EmptyDataError\n\ntry:\n    df = obb.currency.currency_pairs(provider=\"intrinio\", query=q).to_df()\nexcept EmptyDataError:\n    df = obb.currency.currency_pairs(provider=\"intrinio\").to_df()\n    df = df[df.apply(lambda r: q.lower() in str(r.to_dict()).lower(), axis=1)]  # client-side filter","preventionTips":["Constrain search input to 3-letter ISO codes for intrinio currency pairs","Filter the full DataFrame client-side to search names/descriptions","Normalize case before passing query"],"tags":["search","filter","intrinio","currency-pairs","no-results"],"backgroundTag":null,"analyzedSha":"3e071fcc2cd9f891cac6040ae60296dba76dab46","analyzedAt":"2026-08-14T23:40:48.960Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}