HKUDS/nanobot · error · ValueError
serviceUrl claim mismatch
Error message
serviceUrl claim mismatch
What it means
Error "serviceUrl claim mismatch" thrown in HKUDS/nanobot.
Source
Thrown at nanobot/channels/msteams/runtime.py:512
public_key = RSAAlgorithm.from_jwk(json.dumps(jwk))
claims = jwt.decode(
token,
key=cast(Any, public_key),
algorithms=["RS256"],
audience=self.config.app_id,
issuer="https://api.botframework.com",
options={
"require": ["exp", "nbf", "iss", "aud"],
},
)
claim_service_url = str(
claims.get("serviceurl") or claims.get("serviceUrl") or "",
).strip()
activity_service_url = str(activity.get("serviceUrl") or "").strip()
if claim_service_url and activity_service_url and claim_service_url != activity_service_url:
raise ValueError("serviceUrl claim mismatch")
async def _get_botframework_openid_config(self) -> dict[str, Any]:
"""Fetch and cache Bot Framework OpenID configuration."""
now = time.time()
if self._botframework_openid_config and now < self._botframework_openid_config_expires_at:
return self._botframework_openid_config
if not self._http:
raise RuntimeError("MSTeams HTTP client not initialized")
resp = await self._http.get(self._botframework_openid_config_url)
resp.raise_for_status()
openid_config = cast(dict[str, Any], resp.json())
self._botframework_openid_config = openid_config
self._botframework_openid_config_expires_at = now + 3600
return openid_config
View on GitHub (pinned to 42f37dc4c0)
When it happens
Trigger: Thrown at nanobot/channels/msteams/runtime.py:512 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of HKUDS/nanobot@42f37dc4c0 (2026-08-26).
Data as JSON: /api/errors/0186e37b0092aeeb.
Report an issue: GitHub.