mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-07 11:28:35 -05:00
[GH-ISSUE #23867] MCP OAuth 2.1 (Static): HubSpot connection registers client but user authorization is not executed, request reaches MCP unauthenticated #58762
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @roller100 on GitHub (Apr 18, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/23867
Summary
A remote MCP server configured in Open WebUI as
OAuth 2.1 (Static)appears to register successfully, but the required per-user authorization flow is not resulting in an authenticated user session for the MCP request.In our case this is HubSpot's official remote MCP server:
https://mcp.hubspot.comOAuth 2.1 (Static)RegisteredExpected behavior, based on the Notion MCP example and the product UX, is:
What actually happens is:
https://mcp.hubspot.com401 UnauthorizedFailed to connect to MCP server 'HubSpot'So the shared client registration succeeds, but the per-user authorization requirement is not being executed/applied to the live MCP request.
Environment
v0.8.12oauth_session_idcallback regression fix from commit18f6ec68b9fdbb0ad702a45383a741d38ff922eesystem_oauthproduction regression; current evidence suggests that fix is adjacent context, not the primary cause hereReproduction
https://mcp.hubspot.comOAuth 2.1 (Static)Expected Behavior
Each user should be required to authorize the HubSpot app interactively, similar to the Notion MCP pattern, and the resulting user token should be applied to the MCP request.
Actual Behavior
The request reaches the remote MCP unauthenticated and returns
401 Unauthorized.What We Observed
From the Open WebUI logs:
The
401is the primary failure. The async cleanup exception appears secondary.Additional Runtime Observations
From the stored Open WebUI connection state:
That combination suggests that the static client is registered, but the per-user token is either:
OAuth 2.1 (Static)Why This Matters
For remote MCP providers like HubSpot, the whole point of the static-client mode is:
Right now the admin registration side appears to work, but the user authorization side does not.
Related Context
#21195OAuth 2.1 (Static)is fully wired through the MCP runtime path for per-user authorization/token applicationRequest
Please verify whether
OAuth 2.1 (Static)for remote MCP servers is expected to support per-user authorization end to end today.If yes, this looks like a bug in the runtime path because the remote MCP call is going out without a user bearer token.
If no, the docs/UX need to say that much more explicitly, because the current flow strongly suggests that static client registration should still lead to per-user auth.
@pr-validator-bot commented on GitHub (Apr 18, 2026):
⚠️ Missing Issue Title Prefix
@roller100, your issue title is missing a prefix (e.g.,
bug:,feat:,docs:).Please update your issue title to include one of the following prefixes:
Example:
bug: Login fails when using special characters in password@roller100 commented on GitHub (Apr 18, 2026):
Sorry, raised here in error, we are still investigating.