{"record":{"id":"23c0ae48fe6e1e3d","repo":"HKUDS/nanobot","slug":"bot-framework-openid-config-missing-jwks-uri","errorCode":null,"errorMessage":"Bot Framework OpenID config missing jwks_uri","messagePattern":"Bot Framework OpenID config missing jwks_uri","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"nanobot/channels/msteams/runtime.py","lineNumber":544,"sourceCode":"        openid_config = cast(dict[str, Any], resp.json())\n        self._botframework_openid_config = openid_config\n        self._botframework_openid_config_expires_at = now + 3600\n        return openid_config\n\n    async def _get_botframework_jwks(self) -> dict[str, Any]:\n        \"\"\"Fetch and cache Bot Framework JWKS.\"\"\"\n\n        now = time.time()\n        if self._botframework_jwks and now < self._botframework_jwks_expires_at:\n            return self._botframework_jwks\n\n        if not self._http:\n            raise RuntimeError(\"MSTeams HTTP client not initialized\")\n\n        openid_config = await self._get_botframework_openid_config()\n        jwks_uri = str(openid_config.get(\"jwks_uri\") or \"\").strip()\n        if not jwks_uri:\n            raise RuntimeError(\"Bot Framework OpenID config missing jwks_uri\")\n\n        resp = await self._http.get(jwks_uri)\n        resp.raise_for_status()\n        jwks = cast(dict[str, Any], resp.json())\n        self._botframework_jwks = jwks\n        self._botframework_jwks_expires_at = now + 3600\n        return jwks\n\n    @staticmethod\n    def _safe_float(value: object) -> float | None:\n        try:\n            out = float(cast(Any, value))\n            if out > 0:\n                return out\n        except (TypeError, ValueError):\n            return None\n        return None\n","sourceCodeStart":526,"sourceCodeEnd":562,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/channels/msteams/runtime.py#L526-L562","documentation":"Error \"Bot Framework OpenID config missing jwks_uri\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/channels/msteams/runtime.py:544 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}