Skip to content

[Bug]: teams.py native OAuth sign-in (ctx.sign_in) does not render prompt in Teams and swallows signin/failure details #285

Description

@pltchuong

Bug Description

When using ctx.sign_in() with microsoft-teams-apps in a personal chat, the SDK indicates the sign-in prompt was sent, but no OAuth button/card appears in Teams.

Backend logs show Token Service calls succeed (GetSignInResource 200, activity post accepted), yet user never sees a usable prompt and cannot complete native sign-in.

In our testing, fallback magic-code flow (explicit sign-in link + pasted 6-digit code) works reliably, which suggests the issue is in native OAuth prompt/token-exchange handling path.

Tech Details

  • SDK: microsoft-teams-apps (alpha line in use)
  • OS: macOS (Darwin 25.1.0)
  • Bot type: Teams bot, personal scope
  • Flow used:
    • await ctx.sign_in()
    • @app.event("sign_in") handler present
  • Observed backend sequence:
    • GET /api/usertoken/GetToken -> 404 (expected when signed out)
    • GET /api/botsignin/GetSignInResource -> 200
    • POST /v3/conversations/.../activities -> 202 Accepted
    • App log: native sign_in prompted user
    • No prompt/button visible in Teams client

Steps to Reproduce

Create a minimal bot with:

  • @app.on_message calling await ctx.sign_in() when not ctx.is_signed_in
  • @app.event("sign_in") handler
    Install app in Teams personal scope.
    Ensure user is signed out (ctx.sign_out()), then send hi.
    Observe backend logs and client UI.

Expected Behavior

  • Teams shows OAuth prompt/button/card for user to authenticate.
  • On completion, app receives sign_in callback and token is available.

Actual Behavior

  • Backend indicates sign-in prompt was requested/sent.
  • No prompt/button/card appears in Teams UI.
  • No successful sign-in callback.
  • In comparable test path, Teams emits signin/failure (resourcematchfailed), but native app flow does not provide a clear first-class failure surface.

SDK Version

3.13.12

Python Version

2.0.0a10

Additional Context

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions