Microsoft Teams Bot Framework · error code

Teams error 401 BotNotRegistered: BotNotRegistered - no registration found

ConfigurationHTTP 401Authentication & identity

Last verified against Microsoft Learn - Status codes from bot conversational APIs

What Teams returns
No registration found for this agent.

What error 401 BotNotRegistered means

The Connector service could not match the identity your bot presented to any registered Azure Bot resource with the Teams channel enabled. Microsoft's status table documents the code as BotNotRegistered with the message "No registration found for this agent." (earlier versions of the docs and live responses phrase it with "bot" instead of "agent").

This is an identity-plumbing failure, not a permissions one: Teams never evaluated who may talk to whom, because it could not find a bot registration for the app ID inside your token. The three usual shapes are a bot ID that exists in Entra but was never registered as an Azure Bot or Developer Portal bot, a registration that exists but has the Teams channel disabled, and a manifest whose bots[0].botId points at a different app ID than the one your code authenticates with - the classic copy-paste mismatch covered in cause 1 of Teams bot not responding.

What it looks like

{
  "error": {
    "code": "BotNotRegistered",
    "message": "No registration found for this agent."
  }
}

Why it happens

  • The Microsoft Entra app ID in your code was never registered as an Azure Bot resource (or Developer Portal bot).
  • The Azure Bot resource exists but the Microsoft Teams channel was never enabled on it.
  • manifest.json bots[0].botId contains a different GUID than the MicrosoftAppId your endpoint authenticates with.
  • You deployed the staging app ID against the production bot registration, or vice versa.
  • The Azure Bot resource was deleted while the Entra app registration survived.

How to fix Teams error 401 BotNotRegistered

  1. 1Open the Azure portal, find the Azure Bot resource, and compare its Microsoft App ID character-for-character with the MicrosoftAppId your service loads at runtime.
  2. 2On the bot resource, open Channels and confirm Microsoft Teams is listed as a running channel; add it if missing.
  3. 3Unzip your Teams app package and check manifest.json: bots[0].botId must equal the same app ID.
  4. 4If the bot was registered through the Teams Developer Portal, confirm the bot still exists under Tools > Bot management.
  5. 5Re-upload the corrected app package and reinstall the app in Teams, then retest.

How to stop it recurring

Treat the app ID as a single source of truth injected into both the manifest and the service configuration by your build pipeline, never hand-edited in two places. Keep one bot registration per environment and name them so a mismatch is visible in the portal at a glance. A smoke test that sends one message through the token + send path after each deploy catches registration drift before users do.

Official reference: Microsoft Learn - Status codes from bot conversational APIs. See all Teams error codes or the Teams limits and quotas.

Related codes

Error 401 BotNotRegistered - quick answers

What does Teams error 401 BotNotRegistered mean?

The Connector service could not match the identity your bot presented to any registered Azure Bot resource with the Teams channel enabled. Microsoft's status table documents the code as BotNotRegistered with the message "No registration found for this agent." (earlier versions of the docs and live responses phrase it with "bot" instead of "agent").

How do I fix Teams error 401 BotNotRegistered?

1. Open the Azure portal, find the Azure Bot resource, and compare its Microsoft App ID character-for-character with the MicrosoftAppId your service loads at runtime. 2. On the bot resource, open Channels and confirm Microsoft Teams is listed as a running channel; add it if missing. 3. Unzip your Teams app package and check manifest.json: bots[0].botId must equal the same app ID. 4. If the bot was registered through the Teams Developer Portal, confirm the bot still exists…

Stop debugging Teams by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.